David Weber

Hello,

I am currently working on an application that can send mouse input to the Secure Desktop in Windows Vista

Therefore I have created an application with manifest u(iaccess=true) and digital signature and copied it to \program files.

Unfortunately when I now try to access the Secure Desktop with OpenInputDesktop() I receive ERROR_ACCESS_DENIED.

Any clues on what I am missing

Best regards

David




Re: UI Development for Windows Vista SendInput and Secure Desktop

waishan

I am a beginner but I had some brief experience with OpenInputDesktop and also received the access denied error. My app was launched on the user desktop and detected when the desktop switched from user to secure. After detecting this, my app would call OpenInputDesktop and subsequently get the access denied error. If my app runs from the secure desktop (as System), then I didn't get the error but that's not what I wanted to do.

So my main point is that I don't think you can call OpenInputDesktop from the secure desktop unless you have the proper permissions. I don't know if you necessarily have to be a System user.

waishan




Re: UI Development for Windows Vista SendInput and Secure Desktop

David Weber

Hello Waishan,

Thank you for your reply.

I also tried using a service to access the Secure Desktop but was unable to archieve any better results.

I wonder what these 'extra permissions' are supposed to be. I run my application as Administrator and followed all the rules mentioned by MSDN.

Also I find it hardly understandable that a service should be able to access the Secure Desktop since services are supposed to be isolated from the UI.

Have you found any further information on this

Regards

David





Re: UI Development for Windows Vista SendInput and Secure Desktop

waishan

Sorry, I don't have any more info. I didn't need to look into it further since the original task that needed it was dropped.

You said that
you also tried using a service but didn't get better results. Maybe someone else can help if you say what were the results.

waishan




Re: UI Development for Windows Vista SendInput and Secure Desktop

Sangil Seo

I'm very beginner, so I have a question.

How could your app detect the desktop switching from user to secure.

I want to let my app detect when the desktop switch from user to secure.

Pls, let me know the API or windows message related to the desktop switching.

Thanks in advance.





Re: UI Development for Windows Vista SendInput and Secure Desktop

Eric Wolz - MSFT

Why do you want to do this




Re: UI Development for Windows Vista SendInput and Secure Desktop

Sangil Seo

Hi Eric.

my APP is using DirectDraw, and I'm developing app in Windows XP.

My app is well working with Vista in normal.

But, my app is stalled or dead when UAC dialog box is displayed. or CLT+ALT+DEL key is posted.

So, if my app can detect window message at that time, I want to stop my app.

Actually speaking, it is best solution that my app doesn't care UAC or CTL+ALT+DEL.

But, I think DirectDraw has some restriction in Vista.

Please let me know how DirectDraw is well working with Vista's UAC or CTL+ALT+DEL.

Thanks in advance.

p.s. Sorry my poor english Smile





Re: UI Development for Windows Vista SendInput and Secure Desktop

AndyCadley

I'd hazard a guess that your app isn't properly dealing with lost surfaces, though it's been a while since I did any DirectDraw code.



Re: UI Development for Windows Vista SendInput and Secure Desktop

Sangil Seo

Thank you.

I am trying to be properly dealing with lost surface.

I will let you know the result.

Thanks again.





Re: UI Development for Windows Vista SendInput and Secure Desktop

Sangil Seo

Hi Andy.

I have solved the problem related with lost surface.

Thank you very much.

First bug is IsLost method has not been used for DDrawSurface.

So, I just added IsLost method to check whether DDrawSurface is lost or not.

But, the problem was not cleared.

I was confused, and didn't understand the that situation.

But, I found the DDrawSurface back buffer can be changed.

So, I added the code to check whether buffer address is changed or not after Lock() method is used.

If DDrawSurface back buffer address was changed,

after releasing all buffers(Screen, Primary, Back),

I tried to get the all buffers again.

All bugs has been cleared.

I think that above text seems not clear.

Please forgive my poor english.

Anyway, thank you very much again.

Have a nice day.~