虚拟机、远程桌面、SendKeys C#
我尝试对通过RDP访问的VM执行以下操作:虚拟机、远程桌面、SendKeys C#,c#,keyboard,virtual-machine,sendkeys,C#,Keyboard,Virtual Machine,Sendkeys,我尝试对通过RDP访问的VM执行以下操作: 启动命令提示符 thread.sleep足够长,可以断开RDP会话(10秒,如果更长,则可以) Sendkeys到命令提示符以启动在交互模式下工作的exe。FTP就是一个很好的例子。如果在没有参数的情况下启动FTP,则会得到一个交互式提示。这是一个关于安全性的长篇大论,但命令行参数将不起作用,它需要是交互式的。。连接到RDP时,此进程将不会运行 除了一个大问题外,我什么都做得很好。一旦我断开与RDP的连接,sendkeys就没有键盘可供使用。我一时记不
非常感谢您的任何想法。当您创建流程对象时,请适当设置StartInfo:
var proc = new Process {
StartInfo = new ProcessStartInfo {
FileName = "program.exe",
Arguments = "command line arguments to your executable",
UseShellExecute = false,
RedirectStandardOutput = true,
CreateNoWindow = true
}
};
然后启动流程并从中读取:
proc.Start();
while (!proc.StandardOutput.EndOfStream) {
string line = proc.StandardOutput.ReadLine();
// do something with line
}
取自
要发送内容,您只需使用:
proc.StandardInput.WriteLine("Something");
您只需在while循环中检查一些触发器,然后向流中写入一些数据。在我看来,这就像您对XY的正确认识一样。我只想保存侧边栏,集中精力解决特定的问题。如果甚至可以通过C#在虚拟机上实现按键的自动化。要在连接到RDP时启动流程,请断开连接,然后流程继续。