我在 stack overflow 上问过这个问题,但我猜 autohotkey 与编码关系不大。所以我希望在这里问是可以的
所以我正在尝试学习 autohotkey 脚本,但文档非常匮乏。首先,authotkey 可以在虚拟机中读取命令并执行操作等吗?我有一个 Windows 主机和一个运行 eclipse 的 Linux 虚拟机。我想获取一个 hostring(或键盘宏,两者都可以)来输入一些长文本(10 行以上)。这在 VM 中真的可以工作吗?还是我必须在 VM 中运行 autohotkey 才能使其工作?
至于实现这一点,我有两个问题。首先,如何从键盘宏显示多行文本?我知道 Send 命令,但我还不知道它是如何工作的。我有这个:
:*:插入:: ( 文本至 插入 到此处 更多详情请点击此处 )
除了在 notepad++ 中,这个功能运行良好,它会连续插入更多标签,所以它看起来像这样。我没有在 eclipse 中测试它,因为我无法让它识别我的 VM 中的键。
文本至 插入 到此处 更多内容请点击此处
因此,在我的多行宏中,最后会有几页滚动出屏幕。
至于键盘宏,将上面的内容更改为
#C:: 发送{Raw}( 东西 发送 ) 返回
这会导致语法错误,我不知道正确的做法是什么。我应该继续使用热字符串吗?
答案1
所有这些自动化的东西都与主机操作系统有关。如果你想要自动化或在主机和 VMware 之间进行通信,你必须使用不同的解决方案,例如自定义 Web 应用程序或客户端-服务器应用程序(例如命令和控制服务器)。我会在 Linux 中使用脚本作为 cron 作业。该脚本将每 10 秒检查一次 Web 服务器/应用程序 URL。并执行主机操作系统 Web 服务器给出的命令。
答案2
authotkey 可以在虚拟机内部读取命令并执行操作等吗?
我必须在 VM 内部运行 autohotkey 才能使其工作吗?
AutoHotkey 仅适用于 Windows,因此您必须在 Windows 中运行它。如果您的 Linux 虚拟机在 Windows 桌面上显示为窗口,则 AutoHotkey 可能能够成功向其发送击键。您可能需要尝试 Send 命令的不同版本(SendInput、SendPlay、SendEvent)。
如何通过键盘宏显示多行文本?
[...]这会出现语法错误,我不知道正确的做法是什么。
使用括号的正确方法是
#C:: ( 发送{Raw}stuf 发送 ) 返回
还有其他方法可以使用热键发送多行文本。