Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/152.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 是否可以登录并加载用户';从本地计算机上的windows 7服务以编程方式创建桌面?_C++_Windows_Authentication_Windows 7_Windows Services - Fatal编程技术网

C++ 是否可以登录并加载用户';从本地计算机上的windows 7服务以编程方式创建桌面?

C++ 是否可以登录并加载用户';从本地计算机上的windows 7服务以编程方式创建桌面?,c++,windows,authentication,windows-7,windows-services,C++,Windows,Authentication,Windows 7,Windows Services,问题: 我们正在使用Windows7计算机在监视器上显示信息。这台机器很难够到,而且没有键盘或鼠标。当用户使用远程桌面登录到这台机器,然后注销后,它会卡在“按CTRL+ALT+DELETE”屏幕上,我必须将键盘和鼠标插入其中以重新登录到负责在监视器上显示正确信息的用户帐户 我正在开发一个C++的Windows服务,它查看当前会话,查看用户何时登录和退出远程桌面。我想让此服务重新登录到正确的用户,并在用户注销后显示用户的桌面 现在,我正试图找到一种方法,将服务登录到用户帐户,并在显示器上显示他们的

问题: 我们正在使用Windows7计算机在监视器上显示信息。这台机器很难够到,而且没有键盘或鼠标。当用户使用远程桌面登录到这台机器,然后注销后,它会卡在“按CTRL+ALT+DELETE”屏幕上,我必须将键盘和鼠标插入其中以重新登录到负责在监视器上显示正确信息的用户帐户

我正在开发一个C++的Windows服务,它查看当前会话,查看用户何时登录和退出远程桌面。我想让此服务重新登录到正确的用户,并在用户注销后显示用户的桌面


现在,我正试图找到一种方法,将服务登录到用户帐户,并在显示器上显示他们的桌面。还有其他方法可以这样做吗?

没有。您可以模拟用户,加载用户的注册表配置单元,并使用该用户的帐户启动进程,但在Vista和以后的版本中,不允许使用交互式服务,因此您无法执行任何与用户桌面交互的操作。您可以通过TCP、命名管道和其他方式在服务进程和正在运行的用户进程之间进行IPC(进程间通信),但前提是用户已使用桌面登录。无法启动用户桌面会话

更多信息:

至于如何在没有键盘的情况下执行Ctrl-Alt-Delete(即使这不是您真正要问的问题),您可能可以使用屏幕键盘,具体取决于UAC设置


顺便说一下,这根本不是一个特定于C++的问题;您可以将整个Windows API与常规的旧C一起使用。

您可以将计算机配置为使用给定的用户名和密码自动登录。ForceAutoLogon设置使自动登录在用户注销时立即启动,而不是仅在机器重新启动时启动。