2016-12-22 20 views
1

Я вызываю 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 в свой рубиновый скрипт?

+1

PixelGetColor является стандартной функцией AutoIT. oAutoIt.PixelGetColor (10 100) должен работать – Richard

+0

Да, спасибо, что указали это. Я отредактировал этот вопрос с тех пор, и теперь он четко идентифицирует мою потребность в внешнем файле для окна msg. – Vizkrig

ответ