これは、画像認識で秀丸のアイコンにマウスを移動してます。
_ImageSearch(‘hide.png’,1,$x, $y,100)
Basic言語のようなスクリプトで、Pc(IE,Chrome,Excel,LibreOffice,オンラインゲームなど)を自動で動かせるようにできます。
AutoHotkey、UWSCのように簡単に使えます。すこしの勉強コストがいりそうです。大部分の情報が英語サイトです。(英語の勉強も同時にできます!!)
ダウン先: AutoIt – AutoIt
すばらしい、日本語訳のサイトです。
実験記録 No.02 : AutoIt v3 ドキュメント 日本語訳プロジェクト
新しいサイトマップ (記事一覧メニュー):
Sample_code :
— エラー関連 — |
○ 小さなエラー & 気づき |
— ファイル関連 — |
○ 空のNewファイルを作る |
○ 空のファイルをたくさん作る |
— GUI (Window) 関連 — |
○ 最初のWindow表示 |
○ Windowの大きさを、指定する |
○ Closeボタンで閉じるまで、Window表示 |
○ 何もしないButton 付きWindow |
○ Button押すとMsgboxを表示する |
○ カウンター、クリックするごとに+1 |
— 正規表現・ 関連 — |
○ はじめての正規表現検索_01 |
— 小さなTool — |
○ クリップボード中身の文字数カウントする |
○ 2つのウィンドウ(エディタ)を横に並べる |
○ マウスの座標を取得する |
○ 暗記ソフト:Anki音声再生用Rキーをマウスで押す |
— LibreOffice Calcのマクロ — |
○ LibreOfficeをAutoitで。マクロより簡単かも | ごった煮 |
スクリプトの拡張子:.au3で保存する
Autoitのファイルは、テキストエディタで編集し拡張子(au3)で保存すればOKです。
関連付けができていれば、ダブルクリックで起動します。
お決まりの「Hello World」表示
MsgBox(“”,””,”Hello World !!”)
好きなエディタで入力し保存、クリクしてみてください。大抵動くはず。
エディタは何がいいか
Visual Studio Codeで「Autoit」の拡張機能をいれるのがいいです。
補完機能、関数の説明も出てきてくれます。(ただし、英語です)
色もつけてくれ見やすいです。
Visual Studio Code – Code Editing. Redefined
Autoitのコメント
; セミコロンの後ろコメントになる(一行)
#cs
複数行~~~
#ce
#cs ~~ #ce で囲むと複数行をいっぺんにコメントアウトできます。
IEでYahooを開く
1 2 |
#include <IE.au3> $oIE=_IECreate("https://yahoo.com/") |
#include <IE.au3>は、IEを操作するのに必要なファイルです。
◎ 2つのURLを開く
1 2 3 |
#include <IE.au3> $oIE=_IECreate("https://yahoo.com/") _IECreate("http://www.yahoo.co.jp/") |
_IECreate(URL)だけで、表示してくれます。ただし、複数の場合Windowが新しくなります。
YahooアメリカとYahoo(日本)が別窓で開きます。
◎ 同じWindowで表示したい時
1 2 3 |
#include <IE.au3> $oIE=_IECreate("https://ph.yahoo.com/") _IENavigate($oIE,"http://www.yahoo.co.jp/") |
これで、Yahooを閉じ日本のYahooを開きます。
IEの別タブで開く
Documentationになさそうですが、英語サイトで「__IENavigate」underLine2個
これで使えるようです。
1 2 3 |
#include <IE.au3> $oIE = _IECreate("www.google.com") __IENavigate($oIE, "https://yahoo.com", 0, 0x800) |
Yahooが新しいタブで開きます。
IEをタブで開く(COMobjectを利用)
1 2 3 4 5 |
Local $oIE = ObjCreate("internetexplorer.application") $oIE.visible=True $oIE.Navigate("https://yahoo.com") $oIE.Navigate2('http://www.autoitscript.com/', 0x0800) |
Google ChromeでYahooを開く
1 |
Run ("C:\Program Files (x86)\Google\Chrome\Application\chrome.exe https://yahoo.com") |
notepadを起動し、文字貼り付け、単語検索
1 2 3 4 5 6 7 8 9 10 11 12 |
MsgBox(0, "Tutorial", "3秒後にNotepad起動",3) ;3秒で自動で起動 Run("C:\WINDOWS\system32\notepad.exe") WinWaitActive("[CLASS:Notepad]", "") Send("日本へ帰ろう!!{Enter}") ControlSend("[CLASS:Notepad]", "", "[CLASS:Edit; INSTANCE:1]", "This is some text") Send("^f") ;CTRL+F 検索 Send("some") ;上に検索を押す ControlClick("[TITLE:Find;Class:#32770]", "", "[CLASS:Button; INSTANCE:4]") ; Send("{Enter}") |
こんな感じになります
MsgBox :一定時間後動くように
MsgBox ( flag, “title”, “text” [, timeout = 0 [, hwnd]] )
[~] : これはオプションなので指定しなくてもいい。
timeout : 時間(単位は秒)、時間経過するとMsgBoxを閉じ、次のスクリプトが実行されます。
必須項目入れないとエラーになります。最低3つ必要です。
1 |
MsgBox(0,"SAM","sam こつこつ!") |
Line 1 (File “D:\studyData\autoit\test\test.au3″):
MsgBox(0,”sam こつこつ!”)
^ ERROR
Error: Incorrect number of parameters in function call.
文字列の連結は「&」
1 |
MsgBox(0,"","#" & "f0f0f0") |
notepadに文字を入れる(Send)
Send(“日本へ帰ろう!!\n”)
秀丸に、文字列を送り改行しようと思いましたがダメでした。
日本へ帰ろう!!\n
そのまま表示されてしまいました。
ヘルプを読んでわかりました。
Send(“日本へ帰ろう!!{Enter}”)
改行は、{Enter}です。{}で囲む。
1 2 3 4 |
;;notepad++に文字列を送る AutoItSetOption("WinTitleMatchMode",2) ;; 部分一致 WinActivate("Notepad++") ;; 秀丸をActiveに send("sam go back Japan") ;; 文字列を送る |
notepad++の先頭に文字を入れる
1 2 3 4 5 |
AutoItSetOption("WinTitleMatchMode",2) ;;部分一致 WinActivate("Notepad++") ;;notpad++をアクティブに Send("^{HOME}") ;;ファイルの先頭に Send("Sam 日本帰ろう{Enter}") |
Autoitで画像認識
トップの画像認識のコードです。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
#include <ImageSearch.au3> HotKeySet("p", "checkForImage") global $y = 0, $x = 0 Func checkForImage() Local $search = _ImageSearch('hide.png',1,$x, $y,100) If $search = 1 Then MouseMove($x, $y, 10) EndIf EndFunc while 1 sleep(200) WEnd |
_ImageSearchはモニター(ディスクトップ)のすべてを探します。
_ImageSearchArea(“red.png”,1,$xR,$yR,$xR+50,$yR+50,$x, $y, 150)
範囲指定は、絶対座標です。
コメント