用go實現跨平臺Autoit/AutoHotkey和按鍵精靈功能示例程式碼
Robotgo v0.40.0 對滑鼠鍵盤操作進行了大幅度的完善,由於跨平臺切換測試麻煩、合併對比幾個平臺的程式碼浪費時間,再加上 C 程式碼生產效率與 Go 和 JavaScript 不在一個級別上, 沒有支援視窗和程式對應視窗的選擇以及視窗 Bounds,將會在下一個版本完善, 鍵盤操作可能在某些輸入法上有些問題,請切換到系統輸入法,目前優先完成視窗控制程式碼的問題,後面會解決該問題
專案地址:https://github.com/go-vgo/robotgo
下面整理本機測試部分的程式碼,將會在以後版本陸續完善,並附上註釋 (請看清程式碼再執行):
package main
import (
. "fmt"
"github.com/go-vgo/robotgo"
)
func main() {
//鍵盤控制
robotgo.TypeString("Hello World")//輸入Hello World
robotgo.KeyTap("enter")//按下enter鍵
robotgo.KeyTap("a", "control")
robotgo.KeyTap("h", "command") //隱藏視窗
robotgo.KeyTap("i", "alt", "command")
//按下"i", "alt", "command"組合鍵
arr := []string{"alt", "command"}
robotgo.KeyTap("i", arr)
//按下"i", "alt", "command"組合鍵
robotgo.KeyTap("w", "command") //關閉視窗
robotgo.KeyTap("m", "command") //最小化視窗
robotgo.KeyTap("f1", "control")
robotgo.KeyTap("a", "control")
robotgo.KeyToggle("a", "down")//切換a鍵
robotgo.KeyToggle("a", "down", "alt")
robotgo.KeyToggle("a", "down", "alt", "command")
robotgo.KeyToggle("enter", "down")
robotgo.TypeString("en")
//滑鼠控制
robotgo.MoveMouse(100, 200)//移動滑鼠到100, 200位置
robotgo.MouseClick()//滑鼠左鍵單擊
robotgo.MouseClick("right", false) //右鍵單擊
robotgo.MouseClick("left", true) //左鍵雙擊
robotgo.ScrollMouse(10, "up")//向上滾動滑鼠
robotgo.MouseToggle("down", "right")//滑鼠右鍵切換
robotgo.MoveMouseSmooth(100, 200)//平滑移動滑鼠到100, 200
robotgo.MoveMouseSmooth(100, 200, 1.0, 100.0)//設定平滑移動速度
x, y := robotgo.GetMousePos()//獲取滑鼠座標位置
Println("pos:", x, y)
if x == 456 && y == 586 {
Println("mouse...", "586")
}
robotgo.MouseToggle("up")
robotgo.MoveMouse(x, y)
robotgo.MoveMouse(100, 200)
for i := 0; i < 1080; i += 1000 {
Println(i)
robotgo.MoveMouse(800, i)
}
//螢幕控制
//robotgo.CaptureScreen()
// bit_map := robotgo.CaptureScreen()
// Println("CaptureScreen...", bit_map)
//gbit_map := robotgo.Capture_Screen()
gbit_map := robotgo.BCaptureScreen()//獲取螢幕點陣圖
Println("Capture_Screen...", gbit_map.Width)
sx, sy := robotgo.GetScreenSize()//獲取螢幕width和height
Println("...", sx, sy)
color := robotgo.GetPixelColor(100, 200)//獲取座標100, 200的顏色
Println("color----", color, "-----------------")
color2 := robotgo.GetPixelColor(10, 20)//獲取座標10, 20的顏色
Println("color---", color2)
// Bitmap
abit_map := robotgo.CaptureScreen()//獲取全屏點陣圖
Println("a...", abit_map)
bit_map := robotgo.CaptureScreen(100, 200, 30, 40)
//獲取100, 200, 30, 40的點陣圖
Println("CaptureScreen...", bit_map)
// Println("...", bit_map.Width, bit_map.BytesPerPixel)
fx, fy := robotgo.FindBitmap(bit_map)//查詢點陣圖
Println("FindBitmap------", fx, fy)
bit_pos := robotgo.GetPortion(bit_map, 10, 10, 11, 10)//擷取點陣圖
Println(bit_pos)
bit_str := robotgo.TostringBitmap(bit_map)//Tostring點陣圖
Println("bit_str...", bit_str)
// sbit_map := robotgo.BitmapFromstring(bit_str, 2)
// Println("...", sbit_map)
robotgo.SaveBitmap(bit_map, "test.png")//儲存點陣圖為圖片
robotgo.SaveBitmap(bit_map, "test31.tif", 1)
robotgo.Convert("test.png", "test.tif")//轉換點陣圖圖片格式
open_bit := robotgo.OpenBitmap("test.tif")//開啟圖片點陣圖
Println("open...", open_bit)
//全域性監聽事件
Println("---請按v鍵---")
eve := robotgo.AddEvent("v")
if eve == 0 {
Println("---你按下v鍵---", "v")
}
Println("---請按k鍵---")
keve := robotgo.AddEvent("k")
if keve == 0 {
Println("---你按下k鍵---", "k")
}
Println("---請按滑鼠左鍵---")
mleft := robotgo.AddEvent("mleft")
if mleft == 0 {
Println("---你按下左鍵---", "mleft")
}
// mright := robotgo.AddEvent("mright")
// if mright == 0 {
// Println("---你按下右鍵---", "mright")
// }
// robotgo.LStop()
//視窗
abool := robotgo.ShowAlert("hello", "robotgo")//彈出視窗
if abool == 0 {
Println("ok@@@", "確認")
}
robotgo.ShowAlert("hello", "robotgo", "確認", "取消")
// robotgo.GetPID()
mdata := robotgo.GetActive()//獲取當前視窗
hwnd := robotgo.GetHandle()//獲取當前視窗hwnd
Println("hwnd---", hwnd)
title := robotgo.GetTitle()//獲取當前視窗標題
Println("title-----", title)
robotgo.CloseWindow()//關閉當前視窗
robotgo.SetActive(mdata)//SetActive視窗
}
更多原創文章乾貨分享,請關注公眾號
- 加微信實戰群請加微信(註明:實戰群):gocnio
相關文章
- C#實現按鍵精靈的'找圖' '找色' '找字'的功能C#
- 按鍵精靈 使用教程
- 按鍵精靈——指令碼流程結構(3)指令碼
- 2.3用按鍵精靈錄製鍵盤與滑鼠操作
- 按鍵精靈指令碼筆記:基本語法指令碼筆記
- 攜程程式碼分析平臺實現精準測試與應用瘦身
- 如何實現LBS軌跡回放功能?含多平臺實現程式碼
- [轉]:多程式等待的跨平臺實現
- 用低程式碼平臺,5分鐘實現報價轉訂單功能
- 按鍵精靈+螢幕錄影專家實現資料抓包錄製
- Go實戰 22 | 網路程式設計:通過 RPC 實現跨平臺服務Go程式設計RPC
- 用PMML實現機器學習模型的跨平臺上線機器學習模型
- Redis實現排名功能的示例程式碼CRKCRedis
- Go跨平臺交叉編譯Go編譯
- python實現播放音訊和錄音功能示例程式碼Python音訊
- NFS實現跨平臺硬碟共享NFS硬碟
- 低程式碼平臺的功能及其用處
- 用 Go + Redis 實現陪玩平臺原始碼中的分散式鎖GoRedis原始碼分散式
- 使用Xamarin實現跨平臺移動應用開發
- [JAVA] 初識Java 和 Java的跨平臺實現原理Java
- 實現熱鍵啟用後臺程式 (轉)
- 跨平臺、跨主機共享鍵鼠方案(KVM)
- 用可傳輸表空間實現Oracle跨平臺移植Oracle
- mqtt介紹和go程式碼實現MQQTGo
- 2.4用按鍵精靈匯出滬深A股所有股票指定的指標資料指標
- godebug:一個跨平臺的Go程式除錯工具Go除錯
- 使用pmml實現跨平臺部署機器學習模型機器學習模型
- 微軟開源 .NET 框架 實現跨平臺微軟框架
- Go 跨平臺 UI 庫來了 fyneGoUI
- 按鍵精靈VIP移動版基礎教程(價值3…
- 跨平臺滑鼠和鍵盤共享軟體:ShareMouse for macREMMac
- 聯想AI戰略凶猛推進 多裝置,跨平臺精準實現智慧生活AI
- 直播平臺原始碼開發,簽到功能的實現原始碼
- jQuery實現的監聽回車按鍵程式碼例項jQuery
- [Hei.Captcha] Asp.Net Core 跨平臺驗證碼實現APTASP.NET
- 按鍵精靈針對谷歌瀏覽器網頁的指令碼tip(暫未完全)谷歌瀏覽器網頁指令碼
- 跨平臺表空間傳輸的實現
- 移動端頁面鍵盤出現“搜尋”按鍵且實現提交功能