It is correct, the service is registered globally but it just does not respond to requests from less privileged context - Vista blocks this. It's exactly like the case with window messages: you can see windows of administrator's processes in the window list but you are not allowed to send messages to them as normal user. The reason for the restriction is named by you yourself: we don't want someone to abuse this mechanism.
Neither message queues nor DDE (which is internally handled by the windows message dispatcher) provide authentication challenge to distinguish 'good' from 'bad' clients, so the only possibility is to program it manually in the server.
The question is still, why would you want to do something like this? Why should a none-administrator call any functions within a privileged process not providing appropriate credentials (f.i. via UAC)?
The whole point of the program i wrote so far is to assist admins who are using various programs that require they have "actual administrator privileges" instead of normal admin privileges that you get when you have UAC enabled.
Let me ask this then. Is there anyway to tell my process written in autoit that it should check something without adding another check into the Gui message loop? My concern is that doing so would cause a performance drain on the system. And i had wanted to move away from using checks in the message loop and goto using onevent for everything.
Random windoz security rants removed from main body of the response-
Now of course some people disable UAC, problem is that you lose the extra layer of protection that Vista provides for IE7, and any random program can have its way with your system then as well. UAC is a good idea but perhaps Microsoft should protect the DDE servers it uses for critical windows functions.
In reality if someone is able to get a process they programed running on your system with full admin privileges, restricting a non admin process running under the same user account is not going to help you one bit.
Also the secure desktop cripples systems that have several monitors, for instance my system has dual Xeon 5130 chips overclocked to 2.33GHZ with a 1552Mhz FSB 2gb ram and 2 XFX7600GT video cards and it takes it 3+ times longer to display the UAC prompt than a system with half the ram, a Pentium D935, and a cheap 7300 card.
I think there isn't going to be any real security until every process has its own virtual workspace, and they decide to rewrite the api's available to programs installed on a system to reject any input that is even slightly incorrect. And i don't mean they need to make a wrapper for what they already have. Sorry microsoft you need to bite the bullet and start from scratch, and stop using the code from win2000 its obvious the guy who programed the original functions left you no usable comments since you can't seem to fix all the problems your having.