(原) Go与AutoIT的结合

原创文章,请后转载,并注明出处。

最近看了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来直接调用生成。

相关文章