0

我需要镜像在一台 Macbook 上发生的 GUI 控制台活动,以便在第二台相同的 Macbook 上复制它。

这个想法是控制将同时在两台 Macbook 上运行的应用程序。该应用程序是一种具有两种内容变体但控件相同的演示文稿。将其视为 PowerPoint 演示文稿的两个版本,其中一些幻灯片不同。

我认为有可能在一台 Mac 上捕获按键和鼠标事件,然后使用 RFB 协议通过网络将它们发送到另一台 Mac。我在看rfbproxyrfbplaymacro,但这些都是一些不雅的黑客,任何建立在这些之上的解决方案也将是一个黑客。当然,我更愿意避免使用需要我编译和调试五年来没有接触过的软件的解决方案。:-)

可以想象,我可以使用Cliclickxdotool(来自 MacPorts)在“从属”Mac 上启动控制台事件。但后来我不知道我会用什么来捕捉“主人”上的事件。或者基于 xdotool 的解决方案是否需要两台 Mac 都是从属设备,然后使用其他一些设备作为主设备?

输入设备可以是演示鼠标、Apple 遥控器,也可以是 Macbook 上的键盘,甚至是第三台设备。

你能推荐工具吗?还是有其他我没有想到的策略?

4

3 回答 3

2

如果两台电脑在同一个房间,只要遥控器未与其中任何一台配对,一个 Apple Remote 即可控制两台 Mac。不过,我假设您需要一个可以在任意距离上工作的解决方案。

你考虑过 AppleScript 吗?它非常擅长将击键发送到可通过 ssh 访问的 Mac。接收应用程序甚至不需要知道 AppleScript(即可编写脚本)。您只需通过选中Universal Access 系统首选项面板中的启用辅助设备访问选项来确保在目标上启用了 GUI 脚本。

下面是一个 shell 命令的示例,它将通过 applescript 将击键发送到最前面的应用程序:

osascript -e "tell application \"System Events\" to keystroke \"a\""

如果您在主服务器和从服务器之间设置基于密钥的 ssh 身份验证,您可以简单地将 ssh 附加到此命令的前面:

ssh slave osascript -e "tell application \"System Events\" to keystroke \"a\""

为了优雅起见,您可以将任意数量的所需击键包装到基于菜单的 bash 脚本中,然后从第三台计算机上运行它。

于 2011-12-17T05:12:41.710 回答
1

有点令人费解,但您可以使用OSX的 clusterSSH 从第三台机器的主窗口启动 shell 会话,然后向两个从机发送命令。这可以与类似于您上面列出的屏幕控制实用程序配对,其中另一个是pymaCursor

如果可以提前记录所有内容,您可以尝试好的 ol' applescript/automator 记录,或者像 sikuli 这样的新项目 - http://sikuli.org/

于 2011-12-17T04:11:46.243 回答
1

几年前,我曾尝试使用您已经知道的 rfbproxy 和 rfbplaymacro 来同步这样的系统,这些系统不是 Mac。这两个系统都是以相同分辨率运行的 X 终端。由于不同的字体大小设置将应用程序控件放在不同的位置,我们仍然遇到问题,但该解决方案的基本 VNCiness 似乎工作得很好。

也就是说,如果你想编写一个独立的应用程序来使用 osascript 或 cliclick 或 xdotool 发送内容,并且你有一个 wii,你可能会从DarwiinRemote中获得一些乐趣。

于 2012-02-02T15:31:35.650 回答