|
|
| benharper |
| Posted: Nov 16 2010, 08:51 AM |
 |
|
Newbie

Group: Members
Posts: 2
Member No.: 25609
Joined: 27-May 09

|
I know this is off topic - but I can't think of a better place to ask:
What is the best way to screen scrape windows? Minimizing the performance impact is key. I want investigate the feasibility of keeping the last 30 seconds of user activity and send it along with a crash dump. This is for in-house beta testers.
Thanks, Ben |
 |
| phaeron |
| Posted: Nov 21 2010, 10:56 PM |
 |
|

Virtualdub Developer
  
Group: Administrator
Posts: 7773
Member No.: 61
Joined: 30-July 02

|
The only safe way is to use GetDC(NULL) and BitBlt() from the screen to an off-screen DIB. This will be very slow on Windows XP or with an XPDM driver, but it actually attains pretty good performance on Windows Vista or Windows 7 with a WDDM driver. VirtualDub can use an OpenGL hack to speed up readback on XP/XPDM, but I don't recommend it for general use as it is highly dependent on video driver behavior and does not work at all with WDDM drivers.
You may see some references to WM_PRINTCLIENT or PrintWindow(), but I wouldn't bother -- generally these require that all window classes support the alternate rendering path, which very few do.
By the way, have you thought through the privacy implications of doing this...? |
 |
| benharper |
| Posted: Nov 22 2010, 12:34 PM |
 |
|
Newbie

Group: Members
Posts: 2
Member No.: 25609
Joined: 27-May 09

|
Thanks - I'll go with the BitBlt.
As far as privacy goes - that's a legitimate concern. In the past some of these users have even been OK with me attaching a passive VNC session to them and watching their behaviour, in order to learn how they use the product, so I feel that if the people are OK with it, and give their explicit consent, then there isn't too much danger. Of course an IM window could popup over the app and have something confidential inside it, but it seems these users are OK with the low probability of that coinciding with an app crash within 15 seconds of the popup. |
 |