Thema: Delphi Das Handle ist ungültig

Einzelnen Beitrag anzeigen

EWeiss
(Gast)

n/a Beiträge
 
#55

AW: Das Handle ist ungültig

  Alt 4. Mai 2018, 11:23
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

Geändert von EWeiss ( 4. Mai 2018 um 11:28 Uhr)
  Mit Zitat antworten Zitat