Zitat:
Resultat:
Es genügt nicht durch den Enum durchzulaufen und sich die PID über IAudioSessionControl2 zu holen, sondern es muss der State geprüft werden, da nur noch die PIDs gültig sind, welche einen State 1 haben.
Holger das tue ich doch.. bitte siehe folgenden Schnipsel hoffe er reicht.
Delphi-Quellcode:
HR := SessionControl2.GetProcessID(PID);
if Succeeded(HR) then
begin
HR := SessionControl2.GetState(State);
if Succeeded(HR) then
begin
if State <> uint(TAudioSessionState.AudioSessionStateExpired) then
Result := PID;
end;
end;
Mein Problem ist das mit jedem erneuten start der Counter von
SessionEnumerator.GetCount(SessionCount);
um 1 erhöht wird.
Damit addiere ich Aktive und inaktive Session.
Das bekomme ich erst gar nicht es fehlt mir warum auch immer.
Zitat:
SessionCount: 1
---------------------------------------------------
SessionIdentifier: {0.0.0.00000000}.{8aa1d6e2-aca1-4ae5-a835-6c0dbea6b990}|#%b{A9EF3FD9-4240-455E-A4D5-F2B3301887B2}
InstanceIdentifier: {0.0.0.00000000}.{8aa1d6e2-aca1-4ae5-a835-6c0dbea6b990}|#%b{A9EF3FD9-4240-455E-A4D5-F2B3301887B2}|1%b#
ProcessId: 0
DisplayName: @%SystemRoot%\System32\AudioSrv.Dll,-202
IconPath: @%SystemRoot%\System32\AudioSrv.Dll,-203
IsSystemSoundsSession: 0
State: 0
gruss