2016-08-01 7 views
0

Ich versuche zu einem Prozess aus meinem Python-Skript zu nähern. ich einen Wert zu bekommen versuchen, die ich nur von autoit bekommen kann, ich will es aus bestimmtem ProzessGetting Echtzeit-Ausgabe mit Python Subprozess und Autoit

process2 = subprocess.Popen([dpa_path], stdin = subprocess.PIPE,stdout = subprocess.PIPE) 

#I tried some ways, and none of them worked. examples: 
process2.stdout.read(int(process2.stdin.write(str(Auto.ControlCommand("", "", "TBitBtn2" ,"IsVisible", ""))) 

oder

process2.stdout.read(Auto.ControlCommand("", "", "TBitBtn2" ,"IsVisible", "")) 

für autoit I

from win32com.client import Dispatch 
Auto = Dispatch("AutoItX3.Control") 

bin mit und für den Prozess verwende ich

import subprocess 

Wie kann ich den Wert erhalten, der vom Auto.ControlCommand zurückgegeben wird?

Antwort

0

vor allem, AFAIK gibt es keine direkte Möglichkeit, den zurückgegebenen Wert direkt zu erhalten. Je nachdem, was Sie mit dem zurückgegebenen Wert tun müssen, können Sie aus einigen Optionen auswählen.

  1. Führen Sie AutoIt-Skript von SciTE-Lite-Editor (im Paket mit AutoIt). Gehe zu Tools -> Los. Auf diese Weise wird alles, was Sie drucken, in der internen Konsole von SciTE gedruckt werden. Verwenden Sie ConsoleWrite("string")
  2. Pop eine MsgBox wie folgt aus:

AutoIt MsgBox

Für ausführlichere Informationen darüber, wie MsgBox verwenden, um AutoIt doc verweisen: https://www.autoitscript.com/autoit3/docs/functions/MsgBox.htm

Lassen Sie mich wissen, ob dies Ihr Problem behebt.