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

AutoitはUWSCを超える
Autoit 画像認識 移動クリック

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

このコードはこちらに:

メインのコマンドは:

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

見つかった画像の位置座標がX,Yに戻っていきます。

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

Autoitのサンプルコードなど多数:

ルーレット動かす

ゲームの自動化もできます。ルーレットのあたり数値取得は画像認識使ってます。

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

Autoitでわからないところあれば、コメントください。
可能な限り、記事にしたいと思います。

AutoitとAutoHotkeyどちらがいい

あくまで私の感想ですがAutoHotkeyは小さなものにショートカットキーを割り当てたりするのは早いと思います。

Autoitは計算が得意でないです。

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

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

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

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

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

ダウン先:  AutoIt – AutoIt

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

こちらのサイト、海外から見れなくなっています。セキュリティの関係かな
無料のVPN使えば見れます。

Autoit インストールの方法

こちらのサイトの少し下に、画像のようなところあります。

Autoit インストール

赤矢印をクリックしダウンロードして下さい。

Autoit ダウンロード

自分の好みのフォルダーに入れてください。入れたファイルは後で削除しても構いません。
ダウンしたファイル起動すれば、問題なくインストールできるはずです。

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

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

xxxx.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 色分け

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

ファイル多少重いです。

他のエディタ 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)

_画像認識の別記事もどうぞ:

コメント

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