Programm Starten oder in Vordergrund setzen

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
KumpelBlase
User
Beiträge: 2
Registriert: Freitag 30. Juni 2023, 09:40

Hallo,
bin neu und noch Anfänger im Bereich Python.
Ich möchte z.b. Notepad Starten!
Ist es aber gestartet, möchte ich es nicht ein 2 mal Starten, sondern das bereits gestartete Notepad, soll in den Vordergrund gesetzt werden.
Hier mein Programm welches aber nicht funktioniert!
Es wird einfach eine neue instanz von Notepad geöffnet!
Warum? in der If abfrage wird doch geschaut ob es bereits ein Window (Notepad) gibt und er soll es in den "SetForegroundWindow" setzen.
Was mache ich falsch?

Code: Alles auswählen


import subprocess
import win32gui


def open_notepad():
    try:

        hwnd = win32gui.FindWindow(None, 'Notepad')
        if hwnd:

            win32gui.SetForegroundWindow(hwnd)
        else:

            subprocess.Popen('notepad')
    except Exception as e:

        print("Fehler beim Öffnen von Notepad:", str(e))


open_notepad() 

Besten dank für eure Hilfe.
Gruß
Kumpelblase
Benutzeravatar
grubenfox
User
Beiträge: 433
Registriert: Freitag 2. Dezember 2022, 15:49

Was enthält denn 'hwnd' nach dem 'FindWindow'? Und das, was auch immer es ist, wird offensichtlich nicht als 'True' ausgewertet.
Sirius3
User
Beiträge: 17761
Registriert: Sonntag 21. Oktober 2012, 17:20

FindWindow sucht ein Fenster mit dem exakten Titel "Notepad". Ist der Titel wirklich so?
Benutzeravatar
darktrym
User
Beiträge: 784
Registriert: Freitag 24. April 2009, 09:26

Über die Klasse geht's bei mir, also wenn ich die Parameter von FindWindow tausche.
„gcc finds bugs in Linux, NetBSD finds bugs in gcc.“[Michael Dexter, Systems 2008]
Bitbucket, Github
Benutzeravatar
__blackjack__
User
Beiträge: 13123
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

Ist wahrscheinlich auch robuster. Erstens unabhängig von Übersetzungen — wobei Notepad ja auch in deutschsprachigen Windowsinstallationen so heisst — aber auch sicher wenn die Anwendung auch den Dokumenttitel und/oder ein * oder so für ungespeicherte Änderungen mit in den Fenstertitel packt.
„All religions are the same: religion is basically guilt, with different holidays.” — Cathy Ladman
KumpelBlase
User
Beiträge: 2
Registriert: Freitag 30. Juni 2023, 09:40

Moin jo hab in der Zwischenzeit auch festgestellt das das abfragen des Fensters suboptimal ist.Notepad heißt vom Fenster her nicht Notepad leider ^^ Hab das ganze jetzt über die class gemacht ist sowieso schöner.
Danke für die ganzen Antworten, wünsche noch ein schönes Wochenende.
LG Kumpelblase
Antworten