windows - Kan jeg kontrollere tilstanden til højttalerikonet med Delphi-kode

Indlæg af Hanne Mølgaard Plasc

Problem



Systembakkehøjttalerikon [3]


Er det muligt at kontrollere (Aktiver/deaktiver) højttalerkommandoen i Delphi-koden.


Er der en registreringsregistrering for dette?


Mange tak...

Bedste reference


Selvom det kan være muligt at 'skjule' ikonet ved at ændre en ikke-dokumenteret registreringsværdi, kan brugeren fjerne den igen i ikonerne i bakkeikonet, så dette er ikke rigtig en permanent løsning. [4]


Hvis du insisterer på at ignorere dine brugere, ønsker at dempe deres -maskine, kan du slukke lydstyrken programmatisk.


På Windows XP/2003 og ældre skal du bruge den gamle mixer API. Denne API er ikke sjov at håndtere, og du skal huske at slukke for både Wave og master volumen linjer. Se dette og dette til inspiration. [5] [6] [7]


Vista og senere har en ny COM baseret API, der bør være mindre smertefuldt at håndtere. Opret en forekomst af IMMDeviceEnumerator og opregner render endepunkterne (eller brug GetDefaultAudioEndpoint) og ring IAudioEndpointVolume :: SetMute på enhedens endepunkt. Dette eksempel skal være ret tæt, bare oversætte det til Delphi. Lydstyrken kan også styres pr. Applikation, så du skal muligvis også håndtere det, hvis dine brugere er kloge. [8] [9]


Larry Ostermans blog er også en stor kilde til hjælp og detaljer om denne nye API. [10]


Bemærk: Som en løsning for din unmuting kan brugeren simpelthen indstille volumenet virkelig lavt for at slippe af med din lyd. Der er virkelig ingen måde for dig at vide, om lyden høres på et lavt lydniveau og sætter det højere bare fordi du kan, ville være meget ondt og virkelig kunne skade nogen med hovedtelefoner mv.