Will man in einer Windows-Forms-Anwendung einen Klang wiedergeben, dann wird man im .NET Framework lange nach einer Lösung suchen und keine finden. Das .NET Framework enthält auch in der Version 1.1 keinerlei Unterstützung für die Wiedergabe von Klang- und Videodaten. Oft ist es aber sinnvoll, den Benutzer durch einen Klang auf das Eintreten eines Ereignisses hinzuweisen.
Idealerweise sollte die Klangdatei in die Anwendung eingebettet werden, damit nicht zu viele Dateien ausgeliefert werden müssen. Dies erreicht man, indem man die Klangdatei (im Wave-Format) dem Projekt hinzufügt, die auswählt und im Eigenschaftenfenster als Buildaktion den Wert Eingebettete Ressource wählt. Anschließend kann man die im Folgenden angegebene Klasse SimpleSound benutzen, um einen Klang anhand seines Ressourcenidentifikators wiederzugeben:
Ein Beispielaufruf könnte SimpleSound.Play("MyRootNamespace.foo.wav", True) lauten, wobei MyRootNamespace für den Stammnamensraum des Projekts und foo.wav für den Namen der Wave-Datei steht. Vor dem Beenden der Anwendung, die die Klasse zum Abspielen eines Klangs verwendet, muß die Methode Stop aufgerufen werden.
Feststellen der Inaktivität des Benutzers
Das .NET Framework bietet keine Unterstützung dafür, festzustellen, ob der Benutzer das System für einen bestimmten Zeitraum nicht mehr bedient hat. Die nachstehende Klasse UserIdleDetector rüstet die fehlende Funktionalität auf Basis der Plattformfunktion GetLastInputInfo nach. Das Ereignis UserIdle wird ausgelöst, wenn eine bestimmte Zeitspanne seit der letzten Benutzereingabe verstrichen ist. Nimmt der Benutzer seine Aktivität wieder auf, wird das Ereignis UserWakeup ausgelöst. Die Auflösung des Detektors ist ungefähr eine Sekunde: