Robotgo
Golang — это кроссплатформенная система автоматизации, которая позволяет управлять клавиатурой, мышью, растровыми изображениями, изображениями, считывать экран, процессы и дескрипторы окон, а также осуществлять глобальный мониторинг событий. RobotGo поддерживает Mac, Windows и Linux (X11).
Проблемы можно сообщать на Github, чтобы обеспечить централизованное управление и своевременное обновление.
Содержание:
— Docs;
— Binding;
— Requirements;
— Installation;
— Update;
— Examples;
— Cross-Compiling;
— Authors;
— Plans;
— Donate;
— Contributors;
— License.
Docs:
— GoDoc;
— 中文文档;
— English Docs.
Binding:
Robotn — привязка к JavaScript и другим языкам, поддержка большего количества языков.
Требования:
Для установки RobotGo необходимо убедиться, что Golang и GCC установлены правильно.
Для всех:
Golang
GCC
Для Mac OS X:
Xcode Command Line Tools
Для Windows:
MinGW-w64 (рекомендуется) или другой GCC
Для всего остального (Linux и другие системы):
GCC, libpng
X11 с расширением XTest (также известным как библиотека Xtst)
События:
xcb, xkb, libxkbcommon
Ubuntu:
sudo apt install gcc libc6-dev
sudo apt install libx11-dev xorg-dev libxtst-dev libpng++-dev
sudo apt install xcb libxcb-xkb-dev x11-xkb-utils libx11-xcb-dev libxkbcommon-x11-dev
libxkbcommon-dev
sudo apt install xsel xclip
Fedora:
sudo dnf install libxkbcommon-devel libXtst-devel libxkbcommon-x11-devel xorg-x11-xkb-utils-devel
sudo dnf install libpng-devel
sudo dnf install xsel xclip
Установка:
go get github.com/go-vgo/robotgo
Это так просто!
Обновление:
go get -u github.com/go-vgo/robotgo
Обратите внимание на проблемы с кэшированием файлов C при компиляции в go1.10.x, golang #24355. Проблема с go mod vendor
, golang #26366.
Примеры:
Мышь:
package main
import (
"github.com/go-vgo/robotgo"
)
func main() {
robotgo.ScrollMouse(10, "up")
robotgo.Scroll(100, 200)
robotgo.MilliSleep(100)
robotgo.ScrollRelative(10, -100)
robotgo.MouseSleep = 100
robotgo.Move(10, 20)
robotgo.MoveRelative(0, -10)
robotgo.Drag(10, 10)
robotgo.Click("left", true)
robotgo.MoveSmooth(100, 200, 1.0, 100.0)
robotgo.MouseToggle("up")
}
Клавиатура:
package main
import (
"fmt"
"github.com/go-vgo/robotgo"
)
func main() {
robotgo.TypeStr("Hello World. Winter is coming!")
robotgo.TypeStr("だんしゃり", 1.0)
// robotgo.TypeStr("テストする")
robotgo.TypeStr("Hi galaxy. こんにちは世界.")
robotgo.Sleep(1)
// ustr := uint32(robotgo.CharCodeAt("テストする", 0))
// robotgo.UnicodeType(ustr)
robotgo.KeySleep =
``` **Текст запроса написан на языке Go.**
100
robotgo.KeyTap("enter")
// robotgo.TypeStr("en")
robotgo.KeyTap("i", "alt", "command")
arr := []string{"alt", "command"}
robotgo.KeyTap("i", arr)
robotgo.MilliSleep(100)
robotgo.KeyToggle("a", "down")
robotgo.WriteAll("テストする")
text, err := robotgo.ReadAll()
if err == nil {
fmt.Println(text)
}
**В запросе присутствуют фрагменты кода на языке Go, которые не были переведены.** **События**
keve := robotgo.AddEvent("k") if keve { fmt.Println("you press... ", "k") }
mleft := robotgo.AddEvent("mleft") if mleft { fmt.Println("you press... ", "mouse left button") }
**Оконный дескриптор**
```Go
package main
import (
"fmt"
"github.com/go-vgo/robotgo"
)
func main() {
fpid, err := robotgo.FindIds("Google")
if err == nil {
fmt.Println("pids...", fpid)
if len(fpid) > 0 {
robotgo.ActivePID(fpid[0])
robotgo.Kill(fpid[0])
}
}
robotgo.ActiveName("chrome")
isExist, err := robotgo.PidExists(100)
if err == nil && isExist {
fmt.Println("pid exists is", isExist)
robotgo.Kill(100)
}
abool := robotgo.ShowAlert("test", "robotgo")
if abool {
fmt.Println("ok@@@ ", "ok")
}
title := robotgo.GetTitle()
fmt.Println("title@@@ ", title)
}
SET CGO_ENABLED=1
SET GOARCH=386
go build main.go
Установить требования (Ubuntu):
sudo apt install gcc-multilib
sudo apt install gcc-mingw-w64
sudo apt install libz-mingw-w64-dev
Построить бинарный файл:
GOOS=windows GOARCH=amd64 CGO_ENABLED=1 CC=x86_64-w64-mingw32-gcc CXX=x86_64-w64-mingw32-g++ go build -x ./
// CC=mingw-w64\x86_64-7.2.0-win32-seh-rt_v5-rev1\mingw64\bin\gcc.exe
// CXX=mingw-w64\x86_64-7.2.0-win32-seh-rt_v5-rev1\mingw64\bin\g++.exe
См. страницу вкладчиков (https://github.com/go-vgo/robotgo/graphs/contributors) для полного списка вкладчиков.
См. Руководство по вкладу (https://github.com/go-vgo/robotgo/blob/master/CONTRIBUTING.md).
Robotgo распространяется преимущественно на условиях лицензии MIT и лицензии Apache (версия 2.0), при этом некоторые части покрыты различными лицензиями, похожими на BSD.
Смотрите LICENSE-APACHE (http://www.apache.org/licenses/LICENSE-2.0), LICENSE-MIT (https://github.com/go-vgo/robotgo/blob/master/LICENSE).
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.