2016-12-08 1 views
1

Ich versuche ein Skript zu schreiben, das das Öffnen einer Windows-Software automatisiert und dann die Login-Daten (Benutzername und Passwort) eingibt, um die Software vollständig zu öffnen. Im Idealfall möchte ich, dass diese Aktionen zu einem bestimmten Zeitpunkt automatisch ausgeführt werden. Ein Beispiel für eine solche Software wäre Skype, aber es gibt viele andere Software, die ich ausprobieren möchte.automatisieren, "Öffnen einer Windows-App und Anmelden" mit Python; Welches Modul?

Ich suche nach Vorschlägen für welche Module ich untersuchen sollte.

Ich habe Python-Automatisierungs-Tutorials auf Youtube durchsucht, die einzige Sache, auf die ich stieß, war das Modul Pywinauto. Die meisten Tutorials scheinen sich darauf zu konzentrieren, Notepad zu öffnen und Notepad-spezifische Befehle zu verwenden, so dass ich nicht sicher bin, wie viel Freiheit ich mit anderen Windows-Anwendungen habe. Ich besuchte die offizielle Seite von Pywinauto, aber die Homepage war nicht so detailliert wie ich hoffte.

ich plane, kann etwas mehr auf der Straße (die Ausführung einiger Befehle nach unten, nachdem ein Programm zu öffnen) zu automatisieren, so ideal ich ein Modul wollen, die viel Flexibilität hat.

ich bin für die allgemeine Suche Vorschläge und Empfehlungen für die Module.

Dank!

+0

Welches Programm möchten Sie die Verwendung automatisieren? –

+0

Hi, zuerst möchte ich automatisch "Skype" öffnen und einloggen. Danach möchte ich versuchen, "Line" (ein Skype-ähnliches Programm) zu öffnen und einzuloggen und dann einen Anruf zu tätigen. – Moondra

+1

Wenn Sie komplizierte Szenarien automatisieren möchten, empfehle ich Ihnen [das Handbuch zu den ersten Schritten] (https://pywinauto.readthedocs.io/en/latest/getting_started.html), in dem der Umgang mit verschiedenen Technologien zur Barrierefreiheit erläutert wird Pywinauto. Es gibt ein Beispiel für 'explorer.exe' auf GitHub repo readme auch. –

Antwort

1

für Programme t Öffnung Hier ist os.system und subprocess.call einige Leute verwenden auch win32api.

import os 
os.system('notepad.exe') 

import win32api 
win32api.WinExec('notepad.exe') 

import subprocess 
subprocess.Popen(['notepad.exe']) 

Subprozess ist "cross-platform".

import subprocess 
program = 'C:\\Program Files (x86)\\Skype\\Phone\\skype.exe' 
subprocess.Popen(program) 

Dies öffnet Skype bereits, so ist der erste Schritt getan.

Als nächstes möchten Sie mit Skype interagieren. win32api ist nur Windows, aber ich benutze es für dieses Beispiel. Wenn Sie den Login in Skype speichern, können Sie den Login bereits speichern, drücken Sie die Eingabetaste, geben Sie das Passwort ein und drücken Sie erneut die Eingabetaste. Wir machen das mit Tastaturbefehlen. Hier ist ein Arbeitsbeispiel, das Skype öffnet und Sie automatisch anmeldet.

import subprocess 
import win32api 
import win32com.client 
program = 'C:\\Program Files (x86)\\Skype\\Phone\\skype.exe' 
subprocess.Popen(program) 
shell = win32com.client.Dispatch("WScript.Shell") 
win32api.Sleep(5000) 
shell.SendKeys("{ENTER}") 
win32api.Sleep(6000) 
shell.SendKeys("tsadfdsgr") 
shell.SendKeys("{ENTER}") 
+0

Wow. Das ist sehr hilfreich. Ich werde die Dokumente auf win32api lesen und sehen, was ich noch tun kann. Ich danke dir sehr! – Moondra

+0

Hartcodierte Schlaf- und Klickvorgänge nach Koordinaten sind keine zuverlässige Methode, wenn sich die Umgebung (Thema, Bildschirmauflösung usw.) ändern soll. Aber für tägliche Aufgaben auf der dedizierten Maschine könnte es OK sein. Anyway Skype oder einige andere Messenger können mit besser lesbarem Code automatisiert werden. Werde einige Beispiele mit pywinauto schreiben, wenn ich eine Chance habe. Die Win32-API ist nur eine der Technologien, die in pywinauto verwendet werden (MS UI Automation ist leistungsfähiger und wird seit 0.6.0 unterstützt). –

+0

Ja, ich habe gerade realisiert, dass hartcodierte Daten den Login-Prozess abwerfen, wenn das Programm zu langsam lädt. Stellt pywinauto zuverlässigere Methoden zur Navigation in einem Programm bereit? Ich freue mich auf deinen Code. Ich danke dir sehr. – Moondra