我正在Windows 7(x64)和Windows 8(x64)上用C++ 编写远程桌面应用程序,如TeamViewer.
是什么让我陷入困境
我已经使用SendInput()实现了鼠标输入和键盘输入.我发现当进程运行时SendInput()工作正常winsta0\desktop.但是在用户锁定计算机或启动屏幕保护程序后,它无法正常工作.
如果我在下面运行该过程winsta0\winlogon,SendInput()则无法正常工作winsta0\default.
2.我尝试过的
我已经尝试使用SetThreadDesktop()将进程从切换winsta0\desktop到winsta0\winlogon,但我收到错误170:"请求的资源正在使用中",我坚持了下来.
3.我想知道什么
我注意到TeamViewer有一个名为的进程TeamViewer_Desktop.exe,可以在Winlogon,Default和Screensaver下控制鼠标和键盘.它是如何做到的?
你能提供代码来帮助我理解如何解决我的问题吗?
我想知道**如何在默认桌面和Winlogon桌面之间切换应用程序.因此,我可以在安全的桌面上控制鼠标和键盘,而无需在其下创建另一个进程winlogon.exe.