1

我正在尝试启动一个程序,我必须在其中输入登录名和密码。

为了模拟击键,我使用了下一个代码:

System.Windows.Forms.SendKeys.SendWait(login + "\t" + password + "\n\r");

不幸的是,我要在具有 Windows Server 2008 R2 x64 操作系统的服务器上执行所有这些操作,并且我必须使用 RDP。当 RDP 连接处于活动状态时,一切正常,但如果 R​​DP 窗口关闭或最小化,SendWait 会调用异常消息“权限被拒绝”。

当 RDP 断开连接时,如何模拟击键?

谢谢。

4

1 回答 1

3

您可以使用 David Johnson 在此描述的方法

使用以下命令创建一个批处理文件并将其保存到您要保持解锁状态的工作站的桌面上: 我已将我的文件命名为 Logoff.bat

START C:\Windows\System32\tscon.exe 0 /dest:console
START C:\Windows\System32\tscon.exe 1 /dest:console
START C:\Windows\System32\tscon.exe 2 /dest:console
START C:\Windows\System32\tscon.exe 2 /dest:console
START C:\Windows\System32\tscon.exe 3 /dest:console
START C:\Windows\System32\tscon.exe 4 /dest:console
START C:\Windows\System32\tscon.exe 5 /dest:console

Tscon.exe 是您的 Windows 安装的标准配置,专门用于使先前锁定的控制台保持解锁状态。请参阅此链接:http: //support.microsoft.com/kb/302801

下次您使用远程桌面登录工作站时,不要以正常方式注销,而是运行批处理文件 - 在我的情况下为“Logoff.bat” 这将终止您的远程桌面连接并将您注销,但随后会继续以解锁状态运行任何脚本,就好像有人实际登录一样。

于 2014-06-09T14:34:47.380 回答