Fragensteller
PlaySystemSound geht nicht bei deaktivierten Sounds: Windows Soundschema bearbeiten?

Frage
-
Tag,
da ich keine Windows-Sounds mag hab ich in den Sound-Einstellungen 'Keine Sounds' gewählt.
Das hat zur Folge, dass PlaySystemSound. nix mehr abspielt in VB(net). (Für einen Wecker)
Welchen workaround gäbe es?
Ich könnte mir vorstellen die Soundeinstellungen temporär per vb-code umzustellen (einschalten-play-ausschalten), finde aber überhaupt nix im Netz.
Kann mir jemand helfen?
Alle Antworten
-
Hallo,
verwende direkt die SoundPlayer Klasse. Dort kannst Du auch eine Datei (WAV etc.) angeben:
Gewusst wie: Wiedergabe von Sound in Windows FormsGruß Elmar
-
Tag,
ich habe die Systemsounds alle aus, möchte in einem Wecker aber trotzdem über
My.Computer.Audio.PlaySystemSound(Media.SystemSounds.Asterisk)
einen Systemsound ausgeben.
Das geht aber nur, wenn im Soundschema nicht "keine Sounds" steht.
Folgendes hab ich probiert:
regkey = Registry.CurrentUser.OpenSubKey("AppEvents\Schemes", True)
saveKey = regkey.GetValue("") 'für (Standard) muss ein leerstring oder nothing übergeben werden
regkey.SetValue("", ".Default")
My.Computer.Audio.PlaySystemSound(Media.SystemSounds.Asterisk)
regkey.SetValue("", saveKey)
regkey.Close()Ich kann in der Registry bei Einzelschrittablauf das korrekte Setzen von ".Default" nachverfolgen, der code funktioniert. Öffne ich in diesem Moment die Soundeigenschaften, so steht im Soundschema auch tatsächlich 'Windows-Standard' drin, aber in dem tree drunter sind trotz dieses Eintrages keine speaker-Symbole zu sehen, d.h. es werden weiter keine Systemsounds abgespielt, und die Zeile im code gibt folglich auch keinen Sound aus.
Hat einer einen Tipp, welche Aktion hier noch fehlt, damit das Soundschema nicht nur in der Reg gesetzt wird sondern auch im System umgesetzt?
Seid bedankt!
Thomas
- Zusammengeführt Ionut DumaModerator Montag, 22. April 2013 08:10 Dopplepost
-
Hallo,
naja, wer My.Computer verwendet, dem ist vieles nicht bekannt...
Und wenn kein Standard-Schema definiert ist bzw. man sich nicht darauf verlassen will, so ist der Weg eine Datei explizit anzugeben - und diese ggf. auch in das Projekt mit einzubinden - Copyrights sind dabei zu beachten.
Programme, die wiederum das Standard Schema eines Benutzers ändern machen sich nur unbeliebt -> bei mir werden sie sofort gelöscht.
Gruß Elmar
- Bearbeitet Elmar BoyeEditor Samstag, 20. April 2013 16:05
-
Hallo Thomas,
tja und was ist so schwer an:
Dim player As New SoundPlayer("C:\WINDOWS\Media\Windows Error.wav") player.Play()
Zu den geplanten Registry Hacks sage ich nur: So geht es nicht...
Mehr nicht, denn das verbiegt nur den Anwender ihre gewählten Einstellungen.Nicht umsonst sieht Windows vor: Der Anwender bestimmt ob, da was rauskommt: http://msdn.microsoft.com/en-us/library/windows/desktop/ms724947%28v=vs.85%29.aspx#UIeffect
Gruß Elmar
-
Hallo Thomas,
tja und was ist so schwer an:
Zu den geplanten Registry Hacks sage ich nur: So geht es nicht...
Mehr nicht, denn das verbiegt nur den Anwender ihre gewählten Einstellungen.
Moin Elmar, das ist nicht schwer, stimme Dir zu. Aber: entwede ich binde die Wavs als Resource ein oder ich hoffe, dass sie wirklcih da vorhanden sind, wo ich sie angebe. Bei den Systemsounds kann ich sicher sein, dass sie vorhanden sind. (ich überlasse es dem Anwender, mit welchem Sound er sich 'wecken' lässt, auch wählbare mp3s sind erlaubt)
Zum verbiegen: Siehe code. Das wäre nur temporär.
http://social.msdn.microsoft.com/Forums/de-DE/visualbasicde/thread/10abb440-4f30-4d89-9ea7-bfc25da39888
Natürlich verstehe ich Deine Vorbehalte hinsichtlich Reg-Änderung.
Werde wohl, wenn das so schwierig ist, auf diesen Weg verzichten...
Dank allemal!
Thomas
-
Hallo Thomas,
wie bereits gesagt: ich würde eine eigene Sound-Datei einbinden. Es muss ja nicht die Windows eigene sein - freie Piepser gibt es genug.
Den anderen Thread (wie den in US) habe ich gesehen, aber bewusst nicht darauf geantwortet.
IMHO ist der Weg über die Registry - alles andere außen vorgelassen - einfach nur überkompliziert.
Wobei ich schon geguckt habe, siehe Hinweis im letzten Beitrag. Ist die Audio-Ausgabe abgeschaltet, funktionieren die Standardtöne nicht, eben weil der Anwender sie ja nicht hören will. Nebenbei verwendet wird .Current des jeweiligen Tons - hier SystemAsterisk. Beim Ändern des Schemas wird mehr als nur der eine Eintrag geschrieben.
Gruß Elmar