Wie deaktiviere ich die Konsole bei einem compiliertem Python Programm (exe)?

... komplette Frage anzeigen

2 Antworten

Ob eine .EXE-Datei eine Console verwendet, oder nicht, wird in der .EXE-Datei in einem bestimmten Byte gespeichert.

Dieses hat den Wert 3, wenn das Programm eine Console verwendet und 2, falls nicht (andere Werte werden für Treiber usw. verwendet).

Mit folgendem Programm kann man das Byte in der .EXE-Datei verändern:

# 2=Ohne Console, 3=Mit Console
FTYPE = 2
FILENAME = "dateiname.exe"

f = open(FILENAME,"r+b")
f.seek(60)
d = f.read(4)
pos = 0
m = 1
for b in d:
    pos = pos + m*ord(b)
    m = m * 256
f.seek(pos+92)
f.write(chr(FTYPE)) 
f.close()

Vorsicht: Das Programm überprüft nicht, ob es sich tatsächlich um eine EXE-Datei handelt! Wenn man eine andere Datei damit verändert (z.B. ein Word-Dokument) ist die Datei danach Schrott.

Antwort bewerten Vielen Dank für Deine Bewertung

Schau mal, ob Dir das hilft:

http://www.gutefrage.net/frage/python-konsolenfenster-verstecken

Leider ist Dein Programm aber schon kompiliert. Hast Du den Quelltext nicht?

Antwort bewerten Vielen Dank für Deine Bewertung
Kommentar von martin7812
02.09.2014, 12:49

Die dort gezeigte Methode wird aber wahrscheinlich den Nachteil haben, dass wenn man ein Programm aus der Konsole (cmd.exe) aus aufruft, die Konsole weg ist - genauer gesagt: unsichtbar ist, aber immer noch bis zum Abmelden oder Herunterfahren des Rechners im Hintergrund läuft.

0

Was möchtest Du wissen?