【发布时间】:2015-01-30 19:49:25
【问题描述】:
我正在尝试对通过 RDP 访问的 VM 执行以下操作:
启动命令提示符 thread.sleep 足够长的时间来断开 RDP 会话(10 秒,如果更长就可以了)
发送键到命令提示符以启动在交互模式下工作的 exe。一个完美的例子是 FTP。如果您在没有参数的情况下启动 FTP,您会得到一个交互式提示。关于安全性的故事由来已久,但命令行参数不起作用,它需要是交互式的。连接到 RDP 时,此过程不会运行
除了一个主要问题外,我一切正常。一旦我与 RDP 断开连接,就没有键盘可供 sendkeys 使用。我不记得确切的错误,但基本上是“没有连接键盘”
我有一个想法,也许我可以创建一个在 RDP 会话结束时仍然“连接”的虚拟键盘。
我已经验证了进程,即使是命令提示符下的 DOS 也会在断开 RDP 后继续运行。该问题与未连接时的发送键和虚拟机键盘有关。
我搜索了高低,但这一个让我难住了。我知道这是一种解决方法,而不是从源头上解决问题,但我只有这个选项。
我能想到的唯一其他选择是,如果像 SendKeys 一样工作但在没有连接键盘的情况下也能工作?
编辑 只是为了更清楚一点。我找到了许多其他可行的解决方案,但我只剩下这个想法。
规则是:
不能在 VM 上安装任何东西,例如“测试自动化”工具
所有东西都必须使用 VS2012 C# .net 到 4.5 从头开始构建。
也许我可以找到一个开源测试自动化工具,但没有时间研究和转换看似复杂的应用程序。
非常感谢任何想法。
【问题讨论】:
-
在我看来就像XY problem
-
您对 XY 的正确看法。我只想保存侧边栏并专注于特定问题。如果甚至可以通过 C# 在 VM 上进行击键自动化。要在连接到 RDP 时启动进程,请断开连接并继续进程。
标签: c# keyboard virtual-machine sendkeys