Thread: Process all data before it's sent to the screen

  1. #1
    Registered User
    Join Date
    Jul 2007
    Posts
    3

    Process all data before it's sent to the screen

    I need a way to process all data that is going to be shown on the screen.

    What is a good approach to this problem.. can it be done with hooks, or with mirror drivers?

  2. #2
    Malum in se abachler's Avatar
    Join Date
    Apr 2007
    Posts
    3,195
    Do you mean you want to force windows to pass your program all screen data before it displays it? even display data from other programs?

    I dont think thats possible under windows.

  3. #3
    Hurry Slowly vart's Avatar
    Join Date
    Oct 2006
    Location
    Rishon LeZion, Israel
    Posts
    6,788
    Quote Originally Posted by abachler View Post
    Do you mean you want to force windows to pass your program all screen data before it displays it? even display data from other programs?

    I dont think thats possible under windows.
    I think Real VNC uses some hooks to take all programs output. (I see its dll insearted in my application when I use this program) Cannot say if this is done before or after the info is shown...

    VNC uses this info to send the copy of the desktop to the remote computer giving possibility to work on the local computer from the remote client (and it does not disables the local display like Remote Desktop Connection does)
    All problems in computer science can be solved by another level of indirection,
    except for the problem of too many layers of indirection.
    – David J. Wheeler

  4. #4
    Registered User
    Join Date
    Jul 2007
    Posts
    3
    Quote Originally Posted by vart View Post
    I think Real VNC uses some hooks to take all programs output. (I see its dll insearted in my application when I use this program) Cannot say if this is done before or after the info is shown...

    VNC uses this info to send the copy of the desktop to the remote computer giving possibility to work on the local computer from the remote client (and it does not disables the local display like Remote Desktop Connection does)
    Yes I have seen that to.. but there is no way to process the data, Real VNC uses hooks only to know when there is new data printed on the screen.

    The only info I could find about modifying the data is by using SetDDIHook:
    "Microsoft® Windows® 95 and Windows 98 expose system graphics events through
    display device interface (DDI) redirection. This functionality allows
    applications to intercept graphics events before they affect the display
    device. Client applications that hook these events can examine or modify
    stack parameters related to specific DDI calls.
    "

    But this function only works for win95 and 98 and I dont think there is a real replacement for win NT.

    As far as I can tell mirror drivers are only for mirroring the data sent to the display to a buffer and not beeing able to actually change the data before it's displayed.
    Have anyone been working with mirrior drivers and can confirm this?

  5. #5
    Registered User
    Join Date
    Jul 2007
    Posts
    36
    Windows is not designed for real time programming. You probably want to deal with refresh rate and vertical blank. The only way to do this is to use the DirectX libraries.
    FrancoisSoft
    FrancoisSoft on the Web
    If you stare at a computer for 5 minutes you might be a nerdneck.

Popular pages Recent additions subscribe to a feed

Similar Threads

  1. Bitmasking Problem
    By mike_g in forum C++ Programming
    Replies: 13
    Last Post: 11-08-2007, 12:24 AM
  2. Binary Tree, couple questions
    By scoobasean in forum C Programming
    Replies: 3
    Last Post: 03-12-2005, 09:09 PM
  3. char copy
    By variable in forum C Programming
    Replies: 8
    Last Post: 02-06-2005, 10:18 PM
  4. HUGE fps jump
    By DavidP in forum Game Programming
    Replies: 23
    Last Post: 07-01-2004, 10:36 AM
  5. C diamonds and perls :°)
    By Carlos in forum A Brief History of Cprogramming.com
    Replies: 7
    Last Post: 05-16-2003, 10:19 PM