2016-12-22 2 views
1

Ich rufe AutoItX über Ruby WIN32OLE an, um etwas Automatisierung in Windows zu machen, und stieß auf ein Szenario, bei dem ich die Pixelfarbe vom Bildschirm holen und die Farbe in einer msg-Box anzeigen musste. In Autoit ist die msgbox-Methode nicht integriert, daher muss eine externe Datei hinzugefügt werden.Wie externe Au3 (AutoIt) Dateien in Ruby?

Das in Autoit gut funktioniert wie folgt:

#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)) 

Da ich AutoItX Methoden von Ruby bin Aufruf kann es nicht auf die gleiche Weise wie oben aufgenommen werden.

Hier ist mein Ruby-Skript zum Öffnen eines Android-Emulators. Ich plane die Verwendung von Pixelsuche/Bildsuche, um Apps zu identifizieren und Mausklicks zu senden, um mit ihnen zu interagieren.

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}" 

Was ich tun muss, ist, externe AutoIt-Funktionen in das aktuelle Skript einzuschließen. Ich würde gerne auf eine Standardweise fortfahren (Planung auf Skalierung später). Wie gehe ich also vor, um au3-Dateien in mein Ruby-Skript einzufügen?

+1

PixelGetColor ist eine Standard-AutoIT Funktion. oAutoIt.PixelGetColor (10,100) sollte funktionieren – Richard

+0

Ja, vielen Dank, dass Sie darauf hingewiesen haben. Ich habe die Frage seitdem bearbeitet und jetzt identifiziert es eindeutig mein Bedürfnis nach einer externen Datei für eine Nachrichtenbox. – Vizkrig

Antwort