Autor |
Beitrag |
greentiger
Beiträge: 33
|
Verfasst: 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
Beiträge: 19284
Erhaltene Danke: 1742
W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: Mo 10.10.11 18:25
Hallo und
Wie gibst du denn den Ton aus? Denn danach richtet sich ja auch wie du die Lautstärke dafür änderst.
|
|
greentiger
Beiträge: 33
|
Verfasst: Mo 10.10.11 18:31
jaenicke hat folgendes geschrieben : |
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
Beiträge: 116
Erhaltene Danke: 3
Windows (XP Pro, 7 Ultimate x64)
C#,WPF,Java,ASP.Net, VS 2010 Ultimate (x86)
|
Verfasst: Mo 10.10.11 18:38
Zuletzt bearbeitet von daeve am Mo 10.10.11 18:40, insgesamt 1-mal bearbeitet
|
|
jaenicke
Beiträge: 19284
Erhaltene Danke: 1742
W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: 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
Beiträge: 33
|
Verfasst: Mo 10.10.11 18:50
Dies habe ich auch schon gefunden, Danke
jaenicke hat folgendes geschrieben : | 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
Beiträge: 33
|
Verfasst: 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:
C#-Quelltext 1:
| SendMessageW(this.Handle, WM_APPCOMMAND, this.Handle, (IntPtr)APPCOMMAND_VOLUME_MUTE); |
Dann kommen diese Meldungen:
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
Beiträge: 116
Erhaltene Danke: 3
Windows (XP Pro, 7 Ultimate x64)
C#,WPF,Java,ASP.Net, VS 2010 Ultimate (x86)
|
Verfasst: Di 11.10.11 18:43
Da hilft dir das synchronisieren von threads sehr wahrscheinlich weiter.
|
|
greentiger
Beiträge: 33
|
Verfasst: Mi 12.10.11 17:20
daeve hat folgendes geschrieben : | 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
Beiträge: 4777
Erhaltene Danke: 1054
Win10
C#, C++ (VS 2017/19/22)
|
Verfasst: 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:
C#-Quelltext 1: 2:
| [STAThread] static void Main() |
(falls es nicht sowieso schon standardmäßig da steht ;-)
|
|
greentiger
Beiträge: 33
|
Verfasst: Do 13.10.11 16:33
Danke, mit Control.Invoke habe ich es hinbekommen
Moderiert von Th69: Status auf "Frage beantwortet" gesetzt
|
|