2016-05-13 16 views
1

Ich habe ein Skript mit einer GUI, die Benutzerdaten aufnimmt und in einer Textdatei speichert. Es führt ein weiteres Skript (eine .exe) aus, das auf Benutzereingaben wartet und dann etwas Arbeit leistet. Was ich will ist, dass das letztere Skript sein Konsolenfenster nach dem Lesen der Eingabe vom Benutzer versteckt, aber im Hintergrund weiterarbeitet. Ich habe versucht, das Skript mit subprocess.call('lastscript.exe', shell=True) oder subprocess.Popen('lastscript.exe', shell=True) zu starten. Dies funktioniert nicht. Ich muss die Eingabe vom Benutzer zuerst nehmen, und dann die Konsole ausblenden und lassen Sie das Programm im Hintergrund arbeiten.Ausblenden des Konsolenfensters nach dem Lesen der Eingabe

+0

haben Sie als für die Eingabe eines tk Fenster mit? – R21

+0

@ R21 Ich benutze PyQt5 für GUI – GLHF

+0

Kontrollieren Sie die Quelle für lastskript.exe? Es kann leicht sein eigenes Konsolenfenster verstecken. – eryksun

Antwort

2

Hier ist ein Code-Snippet die Windows-Konsole in einem Python-Skript zu verbergen:

import ctypes 

kernel32 = ctypes.WinDLL('kernel32') 
user32 = ctypes.WinDLL('user32') 

SW_HIDE = 0 

hWnd = kernel32.GetConsoleWindow() 
if hWnd: 
    user32.ShowWindow(hWnd, SW_HIDE) 
+0

Es funktioniert auf meinem Beispiel-Skript, ich werde es auf dem Hauptskript tho versuchen, aber ich denke, es wird funktionieren. Danke für die Antwort. – GLHF