How are windows and the general Windows desktop drawn? [closed] - windows

It's difficult to tell what is being asked here. This question is ambiguous, vague, incomplete, overly broad, or rhetorical and cannot be reasonably answered in its current form. For help clarifying this question so that it can be reopened, visit the help center.
Closed 10 years ago.
I ask this question because I probably could research it within a few weeks, but I'm hoping there's someone here who's a lot more knowledgeable and could give me direction.
My question stems from a several year challenge in trying to make a remoting desktop software (just for fun). At first I sent simple PNGs of the entire desktop. Then I finally into a mirror driver capture (DFMirage mirror driver by DemoForge), which was super fast. But it's definitely not fast enough. I'm trying to implement caching by breaking up images into 16 by 16 tiles such that will be a lot of repeats and I only have to send the hash, but it's generally just kind of laggy and dissapointing.
I also have another recent project that involves API hooking. I'm currently hooking Direct3D in this other project. From C#, this means using a hooking library like EasyHook since C# is a managed language. I was wondering if I could apply this to my remote desktop project.
Question: Would it be possible to, and if possible how could I, hook gdi32.dll to redirect all desktop drawing to my application?
But wait, don't jump to answering just yet, because my question itself might be incorrect.
My ultimate goal, of course, is to transfer the screen efficiently from one computer to the other. Now, VNC and most remote desktop products work by transferring the screen as an image. As pixel data. While this is extremely flexible, it's definitely as slow as you can possibly get.
So my guess is that gdi32.dll draws everything that you see on the desktop. Is this correct? I think I'm wrong because DWM aero seems to use something more 'advanced'. So what does draw everything on the desktop? How are windows drawn?
My idea is, that if I can intercept all drawing functions, then I can go beyond the pixel-level and become like Windows Remote Desktop, where I'm sending drawing commands instead of the actual pixels.
If I'm completely amiss, then how does Remote Desktop "know" how to send these primitive drawing commands? The documentation says that Remote Desktop has a "underlying rendering engine" that can "understand" what's on the screen as these primitive drawing commands, but how can I get that too?
I'm looking for an answer that can give me a larger perspective on Windows internals at this graphical level and a direction on how to accomplish my goal (if it's even realistic).

Related

How To Tell What Software Tool Created An EXE File? [closed]

It's difficult to tell what is being asked here. This question is ambiguous, vague, incomplete, overly broad, or rhetorical and cannot be reasonably answered in its current form. For help clarifying this question so that it can be reopened, visit the help center.
Closed 9 years ago.
Is there a way to determine what software tool was used to create a specific exe file? For example I'd like to find out if Delphi or Visual Studio or [Fill in the Blank] was used to create a program.
UPDATE:
I'm using a program called FoxtrotOne from www.enablesoft.com that uses a script and a datafile. The program acts just like a person sitting at the keyboard doing data updates. I've been continually monitoring the task manager and the FoxtroneOne.exe and the memory continues to climb as it loops through the dataset.
I've been told by the tech support guy to close IE after every 100 records because it's holding onto memory. My script interacts with a web application.
I'm convinced that there is a memory leak within FoxtrotOne. If I could determine what IDE they used I could suggest what low level tool they should use. For example if Delphi created this exe then I would suggest they install madExcept to check for memory leaks.
FINAL UPDATE:
I used Exeinfo PE to detrmine FoxtrotOne was created with Visual Basic 5.0 - 6.0
Open the EXE in a hex editor (such as HxD), and you might get a lot of clues. For instance, if you find a lot of VCL-related strings like TLabel, TForm, etc., it is probably an Embarcadero tool.
You might also open the EXE in a resource editor (such as XN Resource Editor) to get more clues:

software creator that is using shortcuts inside an other [closed]

It's difficult to tell what is being asked here. This question is ambiguous, vague, incomplete, overly broad, or rhetorical and cannot be reasonably answered in its current form. For help clarifying this question so that it can be reopened, visit the help center.
Closed 10 years ago.
I am wondering if there is any software that can create a software with shortcuts inside another?
Like if you want to make an web editor you cold say that if you press that button it will write:
<html></html>
And use a browser to render?
If there is no software like this, is it possible to make?
Maybe I am wrong, but I think it will be a breakthrough for opensource development.
I am not a skilled developer so that I won't manage to make something like this, but I want to start a group to do this, with making a website for it. Do you think someone wants to help me or maybe one of you?
I have searched the web for something like this but haven’t found anything.
Edit:
I know this was quite bad formulated and am going to explain this again.
And what I mean is not a web editor, but a software developer application.
The web designer was just a example.
Imagine yourself that you have a UI designer whose you can import other software’s in and then you drag a button in to the screen, and on the settings you say that when you click that button the software will go into one of the software’s you’d imported and do something.
The software I am asking for is this software developer software.
Edit again:
I will do a second attempt to clarify:
You know about bots right? Those who fly around on the web and to crazy things as cheeking hotel prizes to playing poker.
I only wonder about if you cold make a new GUI like QT or GTK that would emulate a certain keyboard event or mouse gesture when clicking a button. And were to get started when doing so.
http://www.linuxquestions.org/questions/linux-newbie-8/kompozer-problems-733285/#post3580690
There's several powerful web editors in a list composed by someone there. It includes editors with a WYSIWYG.
Aptana studio is what I use which can use different browsers to render. It also has a built-in web server so that you can test AJAX requests and php rendering.

Can someone guide me in building a log viewer [closed]

It's difficult to tell what is being asked here. This question is ambiguous, vague, incomplete, overly broad, or rhetorical and cannot be reasonably answered in its current form. For help clarifying this question so that it can be reopened, visit the help center.
Closed 11 years ago.
I want to make a iis log viewer for websites I develop. I know there are utilities already developed out there, for e.g http://visuallogparser.codeplex.com/ , but I want to develop something of my own. Couple of questions I've is, how can I access files on the windows 2003 server.The log files are stored in a particular folder on the server. I've to manually open the files and then look through them for the information that might be relevant.
The first problem I see is being able to first get this file as input to let's say perl or python for file processing and then the issue of sorting and filtering data as is desired. Also getting a GUI for this.
I've no clue in what language or any framework this can be build. Looking for guidance here.
Personally, I think C# is head-and-shoulders above the competition for building standalone GUIs. It also has good support for parsing text, including decent support for regular expressions.
According to http://www.sqlservercentral.com/Forums/Topic525288-146-1.aspx you can just run a query to find out where your SQL-Server instance keeps it's log (and data) files.
If you're just starting out programming it'd be a real good idea to work through "the basics" in tutorials before you get started on project like this. Once you "feel ready" then have a go, looking for tutorials/discussion on each aspect as it arrises... and if you get stuck you can ask more specific questions right here.
One other piece of advise: Before you start coding this sort of thing sit down and do a mock-up of the interface. Workout what operations you want to perform. Analysing the problem WHILE you attempt to code a solution is a CLASSIC recipe for spending a lot of time to get not-much done. You need clear goals BEFORE you start coding... and then, of course, you "adapt" your goals as you learn more... as you go along... But it REALLY helps to be clear about what (roughly) you want before you start.
It might help you to use a couple of those existing log-presenters. Find-out what other people have done... what THEY find useful. If you find a particular functionality useful then you could attempt to copy-cat it... or maybe something someone else has done just gets you wondering "HOW do they do that?" and that get's your creative juices running.
finally, The blank canvas is the scariest one. Just get SOMEthing really simple working, and then add functionality to that, iteratively.
Cheers. Keith.

How has Windows API changed in the last 10 years? [closed]

It's difficult to tell what is being asked here. This question is ambiguous, vague, incomplete, overly broad, or rhetorical and cannot be reasonably answered in its current form. For help clarifying this question so that it can be reopened, visit the help center.
Closed 12 years ago.
I am interested in how Windows API has changed in the last 10 years since Windows 98 and Windows 2000? What interesting API calls have been added that you know? Also do people still write anything in API?
I am now learning everything I can about Windows programming and I am really curious about this. Because books don't explain everything, they just explain small subset of all API. And I want to know about the most modern things in Windows API.
So, my general question is where I can find a detailed WinAPI diff report for 98, 200, Xp, Vista and 7 versions?
There has been considerable change in the Win32 API in the past ten years. This link gives you API changes between XP & Vista and Vista & Windows 7. It's a large list.
All applications on Windows use the API, either directly (C/C++ calling into the existing Win32 API's and COM objects), or indirectly via a framework like MFC or .NET.
The real answer is that the core logic is unchanged. You can take a non-trivial Windows 1.0 source code and compile it for Windows 7 with minimal changes. You still have all the same basic building blocks:
window class creation;
window creation;
message loop;
window procedure;
resources for dialogs and menus;
windows styles;
many more
It is true that a lot of new APIs have been added, but the most common are still there. You do the same things in the same way.
One good way of finding out about some new APIs and why and how they were written can be to read the blogs of various Microsoft developers that is/has worked on Windows or related systems. Some examples:
Mark Russinovich- http://blogs.technet.com/b/markrussinovich/
Raymond Chen - Link
Larry Osterman - Link
There's still people writing pure Win32 applications, but maybe not that many since most applications don't need to be written at that level and can usually be written faster in a higher level. Many .Net applications etc will still call straight into various Windows API methods however when the .Net framework does contain the functionality they need.

RealBasic to write Windows applications? [closed]

It's difficult to tell what is being asked here. This question is ambiguous, vague, incomplete, overly broad, or rhetorical and cannot be reasonably answered in its current form. For help clarifying this question so that it can be reopened, visit the help center.
Closed 9 years ago.
Before I go ahead and invest time checking out RealBasic (now Xojo), I'd like some feedback from people who have moved on from VBCLassic and use the Windows version of RealBasic to write professional business applications.
Is the language good enough, are there enough third-party add-on's to solve the inevitable shortcomings, etc.?
Thank you.
I was never a big VB6 developer, but I have used VB.NET quite a bit. REALbasic is a great substitute for creating desktop applications, but there are some things it cannot do, such as create DLLs or COM objects.
The REALbasic language is significantly more robust than VB6: it's fully object-oriented, has introspection/reflection and even has some dynamic capabilities. The IDE is a lot nicer than the VB6 IDE. But VB6 is 10 years old now and REALbasic is updated regularly, so it ought to be better.
There is a weakness in the 3rd party control market. You won't find anything as good as the grid controls available to VB6, for example. Reporting has been a weak area until recently. REALbasic itself now includes reporting capabilities and there are several 3rd party reporting tools available.
I've created quite a few professional business apps for Windows using REALbasic, but I do all my development on Mac OS X and use VMware Fusion and REALbasic's remote debugger to test and debug on Windows XP/Vista/7.
Update: As of 2013, REALbasic is now known as Xojo (the language is the same, though).
The answer to your question is YES. RB is Great for Desktop Apps. YES there are a bunch of third party add in, however, you don't really need them. You can do everything you want in RB. If you do want to benefit from 3rd Party products (why reinvent the wheel), there are plenty, and the support group is awesome.
REALbasic is free on linux. Install a dual boot system on your PC. Ubuntu would be a good bet here.

Resources