最近看了AutoHotKey和AutoIT,各有专长不同吧:前者更多的是热键一类,而后者更趋向于自动化。得来浅薄,不知对否。
如何让它们与Golang结合一下,充分利用它们的优势呢。
以下代码是+AutoIT,需要用到AutoITX,即AutoIT的DLL库文件。
// 示例使用Notepad3进行操作,而不是Win自带的NotePad
package main
import (
"time"
"github.com/shadow1163/goautoit" // 这个库时间有点久了,不过依然能使用,方法可以学习,自己进行扩充
)
func main() {
goautoit.Run("notepad.exe")
goautoit.WinWait("[CLASS:Notepad3]")
goautoit.Send("hello world 世界")
time.Sleep(1 * time.Second)
goautoit.WinClose("[CLASS:Notepad3]", "") // 这在库中是没有的,需要自己添加。好在通过库中的示例,添加比较简单。
// hwnd := goautoit.WinGetHandle("[CLASS:Notepad3]") // 另一种关闭
// goautoit.WinCloseByHandle(hwnd)
goautoit.ControlClick("Notepad3", "", "Button2") // 退出时询问保存,这里点击中间按钮不保存
}
接下来了看看AutoHotkey有没有与Golang结合的可能。在GUI方面,是否可以用Golang来直接调用生成。