I've got DirectShow based screen capture software. Internally it calls CopyScreenToBitmap function to grab screen. Then the picture is compressed by ffdshow. It works fine as a desktop application, but as window service, on certain computers it does not work (black picture). I've set 'Allow service to interact with desktop' and run that service on current user account. Any ideas what could be wrong?
I test it on windows XP, but it is expected to work on Vista and 7 as well.
Yes it works as desktop application on all computers, but on some of them (on majority of them) it fails as a service.
Try this in addition to allowing access to the desktop:
Then get the DC of the desktop using one of a few methods, including
CreateDC(TEXT("DISPLAY"),NULL,NULL,NULL)
Good luck
As I understand it, a change was made in Vista that moved services onto a separate desktop from the console user. While you have ticked the box that "allows access" to the desktop, I think you still have to pragmatically switch your service to use that desktop.
Here is a blog post with some useful info and examples.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With