Das hatten wir schon Seiten vorher... aber trotzdem Danke.
Nicht nur GetModuleBaseName (gibt den ExeNamen ohne Pfad zurück) verursacht diesen Fehler auch GetModuleFileNameEx (ExeNamen inklusive Pfad)
Hier gibt es den Fehler das mein
Handle ungültig ist.
Deshalb haben wir es doch geändert.
Gehen wir nochmal ganz doll zurück zum ersten Beitrag:
FAudioSessionList[Index].DisplayName := GetBaseNameFromPID(PID);
Woher kommt die Variable PID? Oder um die Frage vielleicht klarer zu stellen: Wie ermittelst du den Wert von PID?
Wenn die Process ID gültig ist - also wie von mir gezeigt per einzelner SessionControl-Instanz geholt - dann muss OpenProcess ein gültiges
Handle liefern.
Ansonsten machst du was falsch.
Laufen die Programme vielleicht als Administrator ("Als Administrator ausführen")? Dann kann OpenProcess so nicht funktionieren.
Vergleiche mit Konsolenausgabe in Beitrag #24:
https://www.delphipraxis.net/1401141-post24.html