I think TeamSpeak uses DirectInput for its hotkeys (a nice fit for you if you are already using DirectX). As for interacting with elevated programs, I think the only solution, and I believe the one TeamSpeak uses, is to embed an application manifest that sets uiAccess=true
. This allows you to bypass UIPI without needing to run the application as administrator.
http://msdn.microsoft.com/en-us/library/bb756929.aspx
For this to work there are a few caveats
- The application must be authenticode signed
- The application must reside in a protected directory (\ProgramFiles\,\system32)
You can self-sign the application (as the alternative is expensive!) but you have to distribute the certificate manually and install it on any system running the application in question.