I tried to write a Utility Manager application, and I am trying to test it on WinXP SP3.
I added it to HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Accessibility\Utility Manager
, and it works well when loading the utility manager when I am logged in.
However, when I try to load it from Utility Manager at startup before login (via Window+U), or from the locked screen, an error message appears, saying (approximately, since it is a German version of WinXP) "This application cannot be executed on the secure desktop. Contact your system administrator to obtain the required permissions".
What do I have to do differently to make this work on the secure desktop?
[b]edit:[/b] I followed the advice of David Pope and tried to debug utilman.exe (using OllyDebug since I'm more used to that than using a new debugger..., and asked it to break on process creation). It seems as if my application does not get started at all. As OllyDebug seemed to have some functions (like break on API call) disabled (maybe because the process runs as a different user), i double checked it using Sysinternals Process Monitor. When launching the on-screen keyboard, an "Process created" event appears; when launching my tool, no event appears.
Another side note: When I put osk.exe (the on-screen keyboard) into my new registry key, it works fine (I basically have two onscreen keyboard entries in the menu then), but if I copy osk.exe to osk2.exe and put osk2.exe as the executable, the copy of the on-screen-keyboard onls starts on the non-secure desktop. So it must be some kind of validation (against filename+content) prior calling the executable? Replacing magnify.exe by my tool (or by osk.exe) will make that one not-work after the next reboot (when utilman is restarted??).
In other words: It will only work if the file is named osk.exe and is the On screen keyboard or the file is named magnify.exe and is the magnifyer.
This does not create any information in the event log either.