Zugriff auf externe Programme in Python

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
l3_12
User
Beiträge: 6
Registriert: Donnerstag 10. Oktober 2019, 10:58

Hallo,

ich würde gerne in Python folgendes Umsetzen, bin mir aber nicht sicher, ob dies überhaupt möglich ist :?

1.) Externes Programm in Python öffnen

Code: Alles auswählen

import subprocess

subprocess.call(['C:\Program Files\MATLAB\R2019a\\bin\\matlab']) # nur als Beispiel, später wird das ein anderes Programm sein
2.) Auf dieses Programm zugreifen und einen Parameter in den Einstellungen ändern # Funktioniert dies überhaupt?

3.) Restliches Python Programm laufen lassen. # Script ist geschrieben und funktioniert auch wie ich es möchte

Konkret geht es darum, dass ich gerne über ein TTP Client Befehle an ein Laufband senden möchte. Dazu muss ich allerdings in den Einstellungen des Control Panels dies zunächst erlauben (also ein Häkchen bei Enable Remote Control setzen). Im Moment muss ich dies immer manuell machen, um mein Python Script danach ausführen zu können. Schöner wäre es allerdings, wenn alles in einem Schritt funktionieren würde.

Hat also jemand einen Tipp für mich, wie man das evtl. umsetzen könnte?
__deets__
User
Beiträge: 14545
Registriert: Mittwoch 14. Oktober 2015, 14:29

Sowas kann man ggf. mit autogui machen.
Benutzeravatar
sparrow
User
Beiträge: 4538
Registriert: Freitag 17. April 2009, 10:28

Früher habe ich pywinauto dafür genommen um fremde Guis zu bedienen.
l3_12
User
Beiträge: 6
Registriert: Donnerstag 10. Oktober 2019, 10:58

Super, genau sowas hab ich gesucht!

Was mir jetzt noch Probleme bereitet, ist der Name des Windows. Der lautet Treadmill Control Panel 1.8.4
und ich möchte dort gerne auf Settings ... . Die Punkte in den Namen führen allerdings zu Fehlermeldungen. Gibt es eine Möglichkeit herauszufinden, wie die Namen richtig hinterlegt sind?

Code: Alles auswählen

from pywinauto.application import Application
app = Application(backend="uia").start("C:\Program Files (x86)\Treadmill.exe")
app.TreadmillControlPanel # Treadmill Control Panel 1.8.4
app.Settings.OK  # Settings...
nezzcarth
User
Beiträge: 1762
Registriert: Samstag 16. April 2011, 12:47

Wenn man es so löst, wie vorgeschlagen, schreibt man finde ich eigentlich kein Programm, das die Aufgabe löst, sondern man schreibt eins, das einen Benutzer simuliert, der die Aufgabe löst. Das Häkchen in der GUI repräsentiert ja nur die Einstellung für einen menschlichen Benutzer. Daher würde ich zunächst mal schauen, ob die nicht auf "maschinen-feundliche" Art ansteuerbar ist (z.B. per Config-Datei, per Kommandozeilenparameter, unter per Registry (Windows), per DBus (Linux), ...). Wenn sich herausstellt, das es sich um eine Laufzeiteinstellung handelt, die nicht anders steuerbar ist, dann kann man, finde ich, so eine GUI-Automatisierung versuchen (und hoffen, dass sie über längere Zeit zuverlässig funktioniert).
Antworten