Seite 1 von 1

psutil und pywinauto starten falsche exe im selben Pfad

Verfasst: Mittwoch 15. April 2015, 11:56
von TechnoFeather
Hallo,

derzeit hänge ich an einem seltsamen Problem fest.

Ich möchte ein Programm (Windows) in einem Pfad ausführen, in dem noch zwei andere Programme liegen. Den genauen Pfad und auch Dateinamen definiere ich, es wird aber dennoch ein anderes Programm aus dem Pfad geöffnet. Erst wenn ich diese "falsche" Datei umbenenne, funktioniert mein Skript.

Dateistruktur im Ordner:
  • Anwendung 1A Client.exe
  • Anwendung 1A.exe
Dazu mein Code:

Code: Alles auswählen

print path
proc = psutil.Popen(path)
print proc
Python Shell:
C:\Program Files\..........\Anwendung 1A Client.exe
psutil.Popen(pid=8476, name=u'Anwendung.exe')
Wenn ich die andere Datei testweise Umbenenne in:
  • Anwendung 1A Client.exe
  • Anwendung1A.exe
Funktioniert mein Skript und "Anwendung 1A Client.exe" wird ausgeführt :shock: - Python Shell:
C:\Program Files\..........\Anwendung 1A Client.exe
psutil.Popen(pid=10620, name=u'Anwendung 1A Client.exe')
Auch wenn ich die eigentliche Datei umbenenne funktioniert mein Skript:
  • Anwendung1A Client.exe
  • Anwendung 1A.exe
C:\Program Files\..........\Anwendung1A Client.exe
psutil.Popen(pid=10620, name=u'Anwendung1A Client.exe')
ich kanns auch 1A und 2A nennen, hauptsache es gibt einen unterschied. Das hier funktioniert dabei auch nicht:
  • Anwendung 1A Client XYZ.exe
  • Anwendung 1A.exe

Ist doch zum verrück werden?! Gibt es dafür eine Lösung?

Re: psutil und pywinauto starten falsche exe im selben Pfad

Verfasst: Mittwoch 15. April 2015, 12:23
von BlackJack
@TechnoFeather: Wenn Du bei `Popen()` *eine* Zeichenkette angibst, dann denkt `Popen()` Du willst da eine komplette Kommandozeile ausführen und zerlegt Dir die. Bei ``…/Anwendung 1A Client.exe`` wäre das dann das Programm ``…/Anwendung`` mit den beiden Argumenten ``1A`` und ``Client.exe``. Du musst da eine *Liste* übergeben mit dem Programm und einzelnen Argumenten. Wenn Du keine Argumente übergeben willst dann halt eine Liste mit dem Programm als einzigem Element. Also ``process = Popen([path])`` in Deinem Fall.

Re: psutil und pywinauto starten falsche exe im selben Pfad

Verfasst: Mittwoch 15. April 2015, 13:39
von TechnoFeather
Ah ok, Danke!

app = pywinauto.application.Application()
app.start_([path])

wollte nicht funkionieren, aber

psutil.Popen([path])

dafür schon. Danke. :)

Re: psutil und pywinauto starten falsche exe im selben Pfad

Verfasst: Mittwoch 15. April 2015, 13:48
von BlackJack
@TechnoFeather: Die Methode von `pywinauto` ist ja auch etwas anderes als `psutils.Popen()`, da wird man wahrscheinlich eine Zeichenkette übergeben müssen. Müsstest Du halt in der Dokumentation von der `start()` nachsehen was das erwartet.

Re: psutil und pywinauto starten falsche exe im selben Pfad

Verfasst: Mittwoch 15. April 2015, 13:55
von TechnoFeather
habe auch "app.start_([path], 0, 0)" probiert, leider mit gleichem Ergebnis. Viel mehr steht leider auch nicht in der Doc: http://pywinauto.googlecode.com/hg-hist ... tion.start_

Re: psutil und pywinauto starten falsche exe im selben Pfad

Verfasst: Mittwoch 15. April 2015, 13:59
von BlackJack
@TechnoFeather: Nun da steht nirgends das das erste Argument eine Liste sein sollte.

Re: psutil und pywinauto starten falsche exe im selben Pfad

Verfasst: Mittwoch 15. April 2015, 15:16
von TechnoFeather
Stimmt. "app.start_(path, 0, 0)" zeigt allerdings keine reaktion - die Konsole bleibt leer.