Я вызываю AutoItX через Ruby WIN32OLE, чтобы сделать некоторую автоматизацию в окнах, и наткнулся на сценарий, где мне нужно было получить пиксельный цвет с экрана и показать цвет в поле 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 Руби не могут быть включены так же, как описано выше.
Вот мой рубиновый скрипт для открытия эмулятора Android. Я планирую использовать поиск по пикселям/поиск изображений для определения приложений и отправки щелчков мыши для взаимодействия с ними.
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