メインコンテンツへスキップ
Robotgoで自動操作

Robotgoで自動操作

··3 分
Programming Golang
かずさプログラマー
著者
かずさプログラマー
業務の作業自動化を行っています。Go、VBA、Pythonを主に使用しています。過去にはC#、VB.Net、JavaScriptも使用していました。

Robotgoで自動操作できる内容をまとめました。

使用バージョン
#

  • Golang 1.23.0
  • robotgo v0.110.5
go-vgo/robotgo

RobotGo, Go Native cross-platform RPA and GUI automation @vcaesar

Go
9732
893

マウスの操作
#

指定座標にマウスカーソルを移動する
#

画面左上を座標x,yを0としたときに、x座標の200、y座標の300に移動したときはMoveを使用します。
座標に瞬時にマウスカーソルを移動します。
ゆっくりとマウスカーソルを移動したいときはMoveSmoothを使用します。

robotgo.Move(200, 300)
robotgo.MoveSmooth(200, 300)

現在のマウスカーソルの位置から相対的な位置に移動したいときはMoveRelativeを利用します。 MoveSmoothRelativeだとゆっくりとマウスカーソルを移動ます。

robotgo.MoveRelative(100, 50) //マウスカーソルの位置から右下x100,y50の位置に移動
robotgo.MoveSmoothRelative(100, 50)

指定座標にドラッグする
#

マウスを入力した座標にドラッグしたいときは、DragSmoothを使用します。
入力した座標にゆっくりとマウスをドラッグします。

robotgo.DragSmooth(100, 50)

マウスカーソルの座標を取得する
#

マウスカーソルの座標を取得したいときは、Locationを使用します。

x, y := robotgo.Location()
fmt.Println(x, y)

現在のマウスカーソルの位置から引数で入力した相対的な位置を取得したい場合はMoveArgsを使用します。
現在のマウスカーソルの位置から右下にx100,y50の位置を取得したい場合は以下のコードになります。

x, y := robotgo.MoveArgs(100, 50)
fmt.Println(x, y)

マウスをクリックする
#

マウスを左クリックしたいときは、Click()を使用します。

robotgo.Click()

左クリック以外を行いたいときは1番目の引数に文字列を渡します。

robotgo.Click("right") //右クリック

// クリックで使える種類
// "left"
// "center"
// "right"
// "wheelDown"
// "wheelUp"
// "wheelLeft"
// "wheelRight"

ダブルクリックしたいときは、2番目にtrueを渡します。

// 左ダブルクリック
robotgo.Click("left", true)

マウスのボタンを押しっぱなしにする
#

マウスのボタンを押しっぱなしにしたい動作はToggleを使用します。

robotgo.Toggle("left")

マウススクロールを実行したい
#

マウスのスクロールを実行したいときは、Scrollを使用します。
マウスホイールのスクロール量を利用してスクロールを行います。
下に向かってスクロールを行いたい場合は2番目の引数にマイナスを入力します。

// 下方向にマウスホイール10スクロール量分スクロールを行いたい場合は2番目の引数にマイナス10を入力
robotgo.Scroll(0, -10)

キーボード操作
#

文字列の自動入力
#

文字列を入力するにはTypeStrを使用します。

// 引数の文字列を入力する
robotgo.TypeStr("abcd")

特定のキーを入力する
#

キーボードの特定のキーを入力したいときはKeyTapを使用します。
利用できるキー一覧は下記のmdファイルに一覧化されています。

// Enterをキーボードで入力する
robotgo.KeyTap("enter")

クリップボード操作
#

クリップボード書き込み、読み込み
#

// クリップボードに値を書き込み後、書き込んだ値を読み込み
// 読み込んだ文字列を入力する
err := robotgo.WriteAll("クリップボードに値を書き込み") // クリップボードに値を書き込み
if err != nil {
	log.Fatal(err)
}
clipStr, err := robotgo.ReadAll() // クリップボードから値を読み込み
if err != nil {
	log.Fatal(err)
}
robotgo.TypeStr(clipStr) //読み込んだ値を入力

Robotgoサンプル
#

マウスの座標位置を記録して、記録した座標に一定の間隔でマウスポインタを移動します。

kazusapg/go-mouse-mover

Go
0
0

関連記事

Golangで標準入力を使用する関数のテスト
··3 分
Programming Golang
Robotgoでマウスポインタを自動で移動させる
·2 分
Programming Golang
Golangでライフゲームを作成しました
·1 分
Programming Golang