Autor Beitrag
greentiger
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 33



BeitragVerfasst: Mo 10.10.11 18:15 
Hallo liebes Forum!

Kann mir jemand sagen, wie ich die Laustärke auf max/stumm stellen kann?
Mit einem einfachen Button_Click, habe schon so manches bei google gefunden aber bis jetzt hat es noch nicht geklappt.

Edit: Stumm schalten funktioniert schon csharp-tricks.blogsp...dows-xp-vista-7.html


MfG
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19274
Erhaltene Danke: 1740

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Mo 10.10.11 18:25 
Hallo und :welcome:

Wie gibst du denn den Ton aus? Denn danach richtet sich ja auch wie du die Lautstärke dafür änderst.
greentiger Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 33



BeitragVerfasst: Mo 10.10.11 18:31 
user profile iconjaenicke hat folgendes geschrieben Zum zitierten Posting springen:

Wie gibst du denn den Ton aus? Denn danach richtet sich ja auch wie du die Lautstärke dafür änderst.


Wie meinst du das?

Ich möchte den Systemton auf max einstellen, die jeweilige Lautstärkeregelung in den einzelnen Programmen ist egal.

PS: sollte unter Win 7 funktionieren ;)
daeve
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 116
Erhaltene Danke: 3

Windows (XP Pro, 7 Ultimate x64)
C#,WPF,Java,ASP.Net, VS 2010 Ultimate (x86)
BeitragVerfasst: Mo 10.10.11 18:38 


Zuletzt bearbeitet von daeve am Mo 10.10.11 18:40, insgesamt 1-mal bearbeitet
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19274
Erhaltene Danke: 1740

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Mo 10.10.11 18:39 
Wobei es in 99,9% der Fälle besser ist das dem Benutzer zu überlassen...
Eine Software, die mir da reinpfuscht, fliegt schneller wieder vom PC als sie Piep machen kann...
Genau dafür wurde die programmspezifische Lautstärkeregelung eingeführt, damit man nicht andere Programme und den Benutzer ärgern muss.
greentiger Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 33



BeitragVerfasst: Mo 10.10.11 18:50 
user profile icondaeve hat folgendes geschrieben Zum zitierten Posting springen:
www.codeproject.com/...vista/CoreAudio.aspx oder das www.geekpedia.com/tu...ve-sound-volume.html


Dies habe ich auch schon gefunden, Danke ;)

user profile iconjaenicke hat folgendes geschrieben Zum zitierten Posting springen:
Wobei es in 99,9% der Fälle besser ist das dem Benutzer zu überlassen...
Eine Software, die mir da reinpfuscht, fliegt schneller wieder vom PC als sie Piep machen kann...
Genau dafür wurde die programmspezifische Lautstärkeregelung eingeführt, damit man nicht andere Programme und den Benutzer ärgern muss.


Möchte einfach ein kleines Programm für mich schreiben, was ein Lied abspielt und da brauche ich eigenttich nur eine Stummtaste und eine für max Volume ;)
Würde dann noch einbauen, dass ich mit einer Tastenkombi stumm bzw auf max stellen kann.
greentiger Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 33



BeitragVerfasst: Di 11.10.11 15:09 
Habe eine Lösung gefunden, mit private const int APPCOMMAND_VOLUME_UP = 0xA0000; kann man die Laustärke erhöhen.

Edit:

Breakpoit bei:
ausblenden C#-Quelltext
1:
 SendMessageW(this.Handle, WM_APPCOMMAND, this.Handle, (IntPtr)APPCOMMAND_VOLUME_MUTE);					


Dann kommen diese Meldungen:
ausblenden Quelltext
1:
2:
3:
4:
5:
this.Handle  "this.Handle" hat eine Ausnahme vom Typ "System.InvalidOperationException" verursacht.  System.IntPtr {System.InvalidOperationException}

//SendMessageW steht in einer Methode, die vorher in einem Multithread aufgerufen wird

base  {"Ungültiger threadübergreifender Vorgang: Der Zugriff auf das Steuerelement Form1 erfolgte von einem anderen Thread als dem Thread, für den es erstellt wurde."}  System.SystemException {System.InvalidOperationException}


Wie kann ich das Problem beheben ohne den Multithread zu beenden?
daeve
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 116
Erhaltene Danke: 3

Windows (XP Pro, 7 Ultimate x64)
C#,WPF,Java,ASP.Net, VS 2010 Ultimate (x86)
BeitragVerfasst: Di 11.10.11 18:43 
Da hilft dir das synchronisieren von threads sehr wahrscheinlich weiter.
greentiger Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 33



BeitragVerfasst: Mi 12.10.11 17:20 
user profile icondaeve hat folgendes geschrieben Zum zitierten Posting springen:
Da hilft dir das synchronisieren von threads sehr wahrscheinlich weiter.


Hätte den Thread so synchronisiert, funktioniert leider nicht, es kommt immer noch die Meldung.
msdn.microsoft.com/d...ibrary/ms173179.aspx
Th69
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Moderator
Beiträge: 4764
Erhaltene Danke: 1052

Win10
C#, C++ (VS 2017/19/22)
BeitragVerfasst: Mi 12.10.11 18:11 
Hallo greentiger,

nein, das ist nicht die richtige Synchronisation für diesen Zweck.
Du mußt Control.Invoke benutzen, damit der Aufruf im MainThread durchgeführt wird.

Benutzt du denn überhaupt einen anderen Thread? Ansonsten könnte auch das STAThreadAttribute helfen:
ausblenden C#-Quelltext
1:
2:
[STAThread]
static void Main()

(falls es nicht sowieso schon standardmäßig da steht ;-)
greentiger Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 33



BeitragVerfasst: Do 13.10.11 16:33 
Danke, mit Control.Invoke habe ich es hinbekommen ;)

Moderiert von user profile iconTh69: Status auf "Frage beantwortet" gesetzt