Exception:

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.
FiRe-

Exception:

Beitragvon FiRe- » Freitag 3. Dezember 2004, 15:03

Moin!

Ich versuch gerade mit pywin32 über die FindWindow-API zu überprüfen, ob Winamp geöffnet ist. Das gibt ne Exception:
wenn WA offen ist:
error: (5, 'FindWindow', 'Zugriff verweigert')
wenn WA nicht geöffnet ist:
error: (2, 'FindWindow', 'Das System kann die angegebene Datei nicht finden.')

Wie kann ich die erste Zahl des Tuple auslesen?
Der Code bis jetzt:

Code: Alles auswählen

from win32gui import FindWindow

def IsWinampRunning():
    try: FindWindow("Winamp v1.x", "")
    except: #????

print IsWinampRunning()
Fire-

Beitragvon Fire- » Freitag 3. Dezember 2004, 15:07

Ich bins nochmal. Also eigentlich sollte FindWindow gar keine Exception zurückgeben, sonder eine Null für nicht gefunden und eine andere Integer-Zahl für gefunden (das hWnd)
Gast

Beitragvon Gast » Freitag 3. Dezember 2004, 15:46

Argh ich bin so blöd. Ich muss
from win32ui import FindWindow
anstatt
from win32gui import FindWindow
schreiben!

Sorry für den "Spam" :(
Milan
User
Beiträge: 1078
Registriert: Mittwoch 16. Oktober 2002, 20:52

Beitragvon Milan » Freitag 3. Dezember 2004, 16:10

Hi. Macht nix, den Befehl kannte ich z.B. noch nicht. Ich hätte mir stattdessen die Prozessliste angeschaut und nach winamp gesucht:

Code: Alles auswählen

import win32com.client
def getprocessdict():
    wmi = win32com.client.GetObject("winmgmts:")
    result = wmi.ExecQuery("SELECT * FROM Win32_Process")
    tasks = {}
    for elem in result:
        name=elem.Name.lower()
        try:
            tasks[name].append(elem.ProcessId)
        except KeyError:
            tasks[name]=[elem.ProcessId]
    return tasks
if "winamp.exe" in getprocessdict(): #nicht sicher ob der Prozess nun winamp.exe heißt
    pass

Wer ist online?

Mitglieder in diesem Forum: Bing [Bot]