Autoit でWindowsを自動操作(UWSC同等以上)

Autoit 画像認識 移動クリック

これは、画像認識で秀丸のアイコンにマウスを移動してます。
_ImageSearch(‘hide.png’,1,$x, $y,100)

このコードはこちらに:「秀丸アイコン」にマウスを移動

_ImageSearch(“探したい画像”,画像の真中または左上の座標取得,座標X、座標Yが入る変数, )
画像のX,Y座標が戻っていきます。

AutoitはBasic言語のようなスクリプトで、IE,Chrome,Excel,LibreOffice,オンラインゲームなどを自動で動かせるようにできます。

 

ルーレット動かす

なにか簡単で役に立ちそうなコードできたら、メニューに追加しますので見てください

スポンサーリンク

Autoit 本家(海外サイト)と日本語訳の説明サイト

 

AutoHotkey、UWSCのように簡単に使えるBasic言語に似たスクリプト言語です。初心者にも文法わかりやすいと思います。

  • ユーザー関数を使って、Chrome・IEなどのブラウザを操作できます。
  • Excelの操作、グラフの作成などもできます。
  • GUI(Window)を作り、操作しやすくできます。
  • スクリプトをコンパイルしEXE(実行形式)にできます。
  • 画像認識もできるの、ゲームの自動化もできます。

すこし難しいことをやりたいときは勉強コストがいりそうです。
大部分の情報が英語サイトです。(英語の勉強も同時にできます!!)

GUI(グラフィック・ユーザー・インターフェイス)=Window画面を作るのも、専用ソフトがあるので簡単にできます。

ダウン先: AutoIt – AutoIt

すばらしい、Autoitマニュアル:日本語訳のサイトです。

Autoit インストールの方法

こちらのサイトの少し下に、画像のようなところあります。
Autoit インストール
赤矢印をクリックしダウンロードして下さい。
Autoit ダウンロード
自分の好みのフォルダーに入れてください。入れたファイルは後で削除しても構いません。
ダウンしたファイル起動すれば、問題なくインストールできるはずです。

スクリプトの拡張子:.au3で保存する

ファイル名のルール: 名前(好きに付けていい、英語小文字)+ ”. ドット” + 拡張子(ファイルの種類を表す)

Autoit 拡張子はAU3

Autoitのファイルは、テキストエディタで編集し拡張子(au3)で保存すればOKです。
関連付けができていれば、ダブルクリックで起動します。

 

お決まりの「Hello World」: SAVEの仕方があっているかを確認

MsgBox ( msgboxの種類, “窓見出しタイトル”, “メイン表示文字列” )

MsgBox(“”,””,”Hello World !!”)

好きなエディタで入力し保存、クリクしてみてください。大抵動くはず。

動かないときは、関連付けができてません。

HelloWorld

 

エディタは「vscode」が最高: 色分け・コード補完

Visual Studio CodeはMicrosoftが開発したWindows、Mac, Linuxで動くエディタで無料で使えます。

AutoitのエディタはVscodeがいい

Visual Studio Codeで「Autoit」の拡張機能をいれるのがいいです。

補完機能、関数の説明も出てきてくれます。(ただし、英語です)

色もつけてくれ見やすいです。

Autoit 色分け

下のリンクをクリックすれば、ファイルをダウンロードできるサイトにゆきます。

ファイル多少重いです。

今のTVは見る価値ありません、ワイドショーなどウソ報道ばかり、映画でも見ましょう。

他のエディタ SciTE / Notepad++

SciTE (Autoitをインストールしたときに付属してきます)

付属エディタ SciTE

Autoitのダウンしたファイルの中に含まれています。補完はしてくれますが設定変更が分かりづらい。

Notepad++

最初から、Autoit色分けするXml入っています。軽いエディタです。

軽いNotepad++

Autoitのコメント 単一行/複数行 Comment

; セミコロンの後ろコメントになる(一行)

#cs

複数行~~~

#ce

#cs ~~ #ce で囲むと複数行をいっぺんにコメントアウトできます。

 

Autoitでブラウザ「IE」を操作

 

Yahoo開くサンプル

#include <IE.au3>
$oIE=_IECreate("https://yahoo.com/")

#include <IE.au3>は、IEを操作するのに必要なファイルです。

◎ 2つのURLを開く

#include <IE.au3>
$oIE=_IECreate("https://yahoo.com/")
_IECreate("http://www.yahoo.co.jp/")

_IECreate(URL)だけで、表示してくれます。ただし、複数の場合Windowが新しくなります。

YahooアメリカとYahoo(日本)が別窓で開きます。

AutoitでIE操作

◎ 同じWindowで表示したい時

#include <IE.au3>
$oIE=_IECreate("https://ph.yahoo.com/")
_IENavigate($oIE,"http://www.yahoo.co.jp/")

これで、Yahooを閉じ日本のYahooを開きます。

 

Autoitでブラウザ「Chrome」を操作

 

Run ("C:\Program Files (x86)\Google\Chrome\Application\chrome.exe https://yahoo.com")

サンプル:notepadを起動し、文字貼り付け、単語検索

Send ( “文字列”  )
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つ必要です。

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. (パラメータの数が正しくない)

エラーを無くすには:

MsgBox(0,””,”sam こつこつ!”)

パラメータ ””を2番目に入れる

 

文字列の連結は「&」

 

MsgBox(0,"","#" & "F0F0F0")

文字列連結

 

notepadに文字を入れる(Send)

 

Send(“日本へ帰ろう!!\n”)

秀丸に、文字列を送り改行しようと思いましたがダメでした。

日本へ帰ろう!!\n

そのまま表示されてしまいました。
ヘルプを読んでわかりました。

Send(“日本へ帰ろう!!{Enter}”)

改行は、{Enter}です。{}で囲む。

;;notepad++に文字列を送る
AutoItSetOption("WinTitleMatchMode",2) ;; 部分一致
WinActivate("Notepad++") ;; 秀丸をActiveに
send("sam go back Japan") ;; 文字列を送る

 

notepad++の先頭に文字を入れる

 

AutoItSetOption("WinTitleMatchMode",2) ;;部分一致
WinActivate("Notepad++") ;;notpad++をアクティブに

Send("^{HOME}") ;;ファイルの先頭に
Send("Sam 日本帰ろう{Enter}")

 

Autoitで画像認識

トップの画像(秀丸アイコン)認識のコードです。

#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)
_ImageSearchAreaは探す範囲を指定します、それだけ早く探してくれます。
範囲指定は、絶対座標です。
:_画像認識の別記事もどうぞ:

コメント

タイトルとURLをコピーしました