如何在mac机器上通过ssh获得windows机器的GUI访问



我正在尝试实现一个自动化框架,我想在python中运行一个脚本,通过使用mac机器的ssh来启动windows .exe文件(例如记事本)。

我已经考虑过X11, openssh, fresh。

我可以运行python脚本,但由于我没有windows机器的GUI访问权限,我无法看到notepad正在启动。

此外,导出显示不是windows的选项。

如果有人能让我知道如何实现这个,我将非常感激。

提前感谢!

这就解决了我的问题:

https://superuser.com/questions/531787/starting-windows-gui-program-in-windows-through-cygwin-sshd-from-ssh-client

谢谢你的回答!

基本上只是安装Cygwin SSH和使用屏幕检索GUI。即使是基于Pyro/RPyC的架构也会有所帮助。

一种选择是在OSX中使用Parallels,另一种选择是RDP (Windows版本的SSH + VNC)到服务器。

(我不清楚你到底想达到什么目的)

您可以使用自动热键来检测窗口是否存在。据我所知,你可以使用自动热键从python。我不能给出确切的链接如何使用AutoHotkey从python(我不熟悉python),但有大量的链接在谷歌,如果你搜索"AutoHotkey python"。下面是AutoHotkey代码,用于检测窗口是否存在,并在这种情况下执行一些代码。

Loop
{
    SetTitleMatchMode, 2 ;sets to window's title can contain WinTitle anywhere inside it to be a match. So we can match Notepad Wintitle only with "Notepad". In that case we dont need Notepad exact Wintitle.
    IfWinExist, Notepad
    {
        ;Here should be any code that is executed if window exests.
    }
    Sleep, 1000 ; That command allows to check window every 1sec(1000 milliseconds). You can change that value or complitly remove that command.
}

始终使用自动热键http://ahkscript.org/(当前版本,新的官方网站)!AutoHotkey从autohotkey.com是过时的!

最可靠的解决方案可能是使用Jenkins。设置步骤相当简单:

  • 在Mac上安装Jenkins服务器(在Linux上也可以正常工作)。
  • 在你的Windows虚拟机上,安装Java并按照Jenkins文档描述如何设置Windows节点。
  • 一旦Windows虚拟机连接到Jenkins服务器,尝试在Jenkins web UI中创建一个作业,看看服务器是否可以在Windows虚拟机上运行它。
  • 一旦作业通过,就可以使用Jenkins远程访问API从另一个脚本(例如,从您提到的Linux主机)远程启动它。或者如果一个人要远程启动作业,他们可以简单地使用web UI。

重要提示:

根据测试中的应用程序的需要,您可能需要永久地让用户登录到Windows机器上(以便出现交互式桌面),并确保Jenkins代理在该用户会话中运行。这种设置在我过去测试Windows上的GUI应用程序并将结果报告给Linux主机时工作得很好。

Jenkins的优点是它很好地处理了将Windows应用程序的退出状态和文本输出传输回Jenkins服务器,这样服务器就可以在出现任何问题时通知你。当不使用Jenkins时,这种类型的系统可能非常脆弱且耗时。

相关内容

最新更新