• Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 731
  • Last Modified:

C++ to do a Screen Capture of "Secured Desktop" (UAC Prompts)

Is there anyone who know how to take screen capture of the secured desktop? (The darker overlay where UAC Prompt appears)

The regular "bitblt" that i'm using doesn't seems to capture these screens.

Thanks
0
Christian de Bellefeuille
Asked:
Christian de Bellefeuille
  • 3
1 Solution
 
TommySzalapskiCommented:
The whole idea behind the UAC prompt is that Windows limits what processes can run so that malicious software cannot capture your keyboard input (password?), or click the install button for you, or slip by unnoticed.

Your applications are not supposed to be able to interact with the secured desktop at all.

Why do you need to get a screen capture of that desktop? Perhaps we can help you find a different method to achieve the same end result.
0
 
Christian de BellefeuilleProgrammerAuthor Commented:
I know the whole idea about the UAC, but i know it's possible to do it (TeamViewer for example do it).

We are developping a solution similar to TeamViewer/VNC/LogMeIn/etc, to allow our users to support their customers remotely.

The point is that if the local user think that his support staff see the prompt, and wait for an action from him... they will wait forever.

I've seen registries like PromptOnSecureDesktop, but from the tests i've done, it has no impact on the result with bitblt.  But maybe i've done something wrong, just setting it to 0 or false might not be enough...
0
 
Subrat (C++ windows/Linux)Software EngineerCommented:
To handle UAC, we need proper privilege. So you can take a look into

ImpersonateLoggedOnUser()
0
 
Christian de BellefeuilleProgrammerAuthor Commented:
I'll do some reading about this API call and i'll get back later after some tests.   Thanks for this hint Subrat2009
0
 
Christian de BellefeuilleProgrammerAuthor Commented:
I've not been able to test the solution.  We have something urgent on the Schedule for the next 2 weeks, then i'll be able to try it.

I'll mark your solution as correct, and if i need more help i'll post a new question linked to this one.

Thanks for your help
0

Featured Post

Keep up with what's happening at Experts Exchange!

Sign up to receive Decoded, a new monthly digest with product updates, feature release info, continuing education opportunities, and more.

  • 3
Tackle projects and never again get stuck behind a technical roadblock.
Join Now