私はRuby WIN32OLEを使ってWindowsでオートメーションを行い、スクリーンからピクセルカラーを取得し、msgボックスに色を表示しなければならないシナリオを見つけました。 Autoitにはmsgboxメソッドが組み込まれていないので、外部ファイルをインクルードする必要があります。外部au3(AutoIt)ファイルをRubyに含めるには?
、以下に示すように、これはのAutoItで正常に動作します:
#include <MsgBoxConstants.au3>
Local $iColor = PixelGetColor(10, 100)
MsgBox($MB_SYSTEMMODAL, "", "The decimal color is: " & $iColor)
MsgBox($MB_SYSTEMMODAL, "", "The hex color is: " & Hex($iColor, 6))
私はそれが上記と同様に含めることはできませんルビーからAutoItXメソッドを呼んでいるので。
ここでは、アンドロイドエミュレータを開くための私のルビースクリプトです。私は、ピクセル検索/画像検索を使ってアプリケーションを識別し、マウスクリックを送信してそれらとやりとりすることを計画しています。
require 'win32ole'
# create autoit object from win32ole
puts 'Creating oAutoIt Object...'
oAutoIt = WIN32OLE.new("AutoItX3.Control")
# open MEmu
puts 'Opening MEmu'
MEmu_pid = oAutoIt.Run "C:/Program Files/Microvirt/MEmu/MEmu.exe", "", oAutoIt.SW_SHOWNORMAL
#MEmu_pid = oAutoIt.RunWait "C:/Program Files/Microvirt/MEmu/MEmu.exe", "", oAutoIt.SW_SHOWNORMAL # => pauses the script waits for MEmu to finish.
puts "MEmu is running | PID #{MEmu_pid}"
私がする必要があるのは、外部AutoIt関数を現在のスクリプトに組み込むことです。 私は標準的な方法(後でスケーリングを計画する)を進めたいと思います。どうすれば私のルビスクリプトにau3ファイルを含めることができますか?
PixelGetColorは、標準のAutoIt機能です。 oAutoIt.PixelGetColor(10,100)は動作するはずです – Richard
はい、それを指摘してくれてありがとう。それ以来、私は質問を編集しました。そして今、それはmsgボックスのための外部ファイルの必要性を明確に示しています。 – Vizkrig