Entwickler-Ecke

Multimedia / Grafik - [Sound] Systemlautstärke ändern


LuMa86 - Mi 08.08.12 16:31
Titel: [Sound] Systemlautstärke ändern
Hallöchen,
Ich versuche schon den ganzen Mittag nach einer Möglichkeit die Systemlautstärke zu ändern. Ich habe massenhaft Themen gelesen, aber die meisten Codes/Methoden haben nicht funktioniert. U.a. habe ich mir durch die Delphi-Praxis, den Delphi-Treff, Das Swiss-DelphiCenter und hier durch die Entwicklerecke gegraben, aber nichts gefunden, was mir hilft. ICh weiß auch nicht warum ich es nicht hinbekommen habe. Viele der Themen waren auch alt und schienen sich auf WinXP zu beziehen. Zudem arbeite ich an einem Laptop (könte das auswirkungen bezüglich der Lautstärkereglung gegenüber einem Desktop-PC haben?). Könntet ihr mir helfen?

Danke,
Lukas


jaenicke - Mi 08.08.12 16:56

Hallo und :welcome:

Das ist auch eigentlich keine gute Idee. Was hat das denn für einen Sinn?
Es reicht doch in 99,9% der Fälle die Lautstärke nur für dein Programm zu regeln...

Ausnahme sind z.B. Tools der Soundkartenhersteller, aber viele andere fallen mir da nicht ein.

Jedenfalls geht das über die neue EndpointVolume API:
http://msdn.microsoft.com/en-us/library/windows/desktop/dd370832.aspx

// EDIT:
Falsche API genannt :oops:


Delete - Mi 08.08.12 17:00

http://www.delphipraxis.net/attachments/30942d1271531673-vista-win-7-laustaerke-regeln-endpointvolume_120.rar


jaenicke - Mi 08.08.12 17:17

Stimmt, hatten wir ja grad erst:
http://www.entwickler-ecke.de/topic_Systemlautstaerke+abfragen_109181,0.html


LuMa86 - Mi 08.08.12 18:28

@jaenicke: Super, die Komponente erfüllt ihren Zweck voll und ganz. Die Systemlautstärke möchte ich auch nur ändern, weil mein Programm nicht selbst Audiodataien abspielt, sonder vom Standartplayer abspielen lässt. Und meistens hat man ja nicht das Mastervolume auf 100%, da würden mir ja die Ohren wegfliegen :D


jaenicke - Mi 08.08.12 18:37

Dann wäre es eher sinnvoll herauszufinden welcher Prozess das ist und dann dessen Lautstärke zu regeln.

Den Prozess zu finden ist gar nicht so schwer. Den kannst du z.B. nach dem Start über die Prüfung bei welchem Prozess man selbst als Parent in der WMI-Tabelle Win32_Process eingetragen ist finden. Oder indem du alle Prozesse mit CreateToolhelp32Snapshot durchgehst und dort nach dem Parent schaust.

Denn die Anpassung der Systemlautstärke bewirkt auch Anpassungen der Lautstärken anderer Prozesse, was aber in der Regel kaum gewünscht ist. Bei mir ist die z.B. meistens bei 5 - 10%. Wenn du die jetzt hochdrehst, fliegt mir das Trommelfell weg...
Das gibt eben Gründe weshalb man die Systemlautstärke nur im äußersten Notfall ändern sollte, wenn es wirklich nötig ist...

Wenn das ein Programm bei mir machen würde, wäre es schneller wieder von der Platte herunter als es noch einmal piep machen könnte...