Verweis: | MaxLength |
Uses: | Registry |
Eingabe: | Anschalten true oder false: Boolean |
Ausgabe: | Gibt bei Erfolg True zurück |
Funktion: | Schaltet im Betriebssystem den Warnsound an oder aus. |
Es kommt immer wieder mal vor, dass sich Benutzer über die Klänge von Windows ärgern. Am liebsten wollen Sie diese komplett ausschalten. Wenn Sie die in Ihrem Programm bewerkstelligen möchten, dann gibt es die Möglichkeit in dies über Ihr Programm in der Registry zu ändern.
//If RegSoundAnAus(True)=True then....;
function RegSoundAnAus(Anschalten: boolean): boolean;
var
Reg: TRegistry;
begin
Reg := TRegistry.Create;
try
with Reg do
begin
RootKey := HKEY_CURRENT_USER;
OpenKey('\Control Panel\Sound', True);
if Anschalten then
begin
WriteString('Beep', 'Yes');
WriteString('ExtendedSounds', 'Yes');
end;
if Anschalten = False then
begin
WriteString('Beep', 'No');
WriteString('ExtendedSounds', 'No');
end;
CloseKey;
end;
Result := True;
except
Result := False;
end;
Reg.Free;
end;
Aufruf 1
Vorbereitung: Erstellen sie eine IDE Anwendung und ziehen Sie ein TButton und ein TEdit auf die Form. Erstellen Sie ein OnClick-Ereignis für den TButton.
procedure TForm1.Button1Click(Sender: TObject);
begin
Edit1.MaxLength := 10;
//Aufruf: Schalte den Systemsound an.
//Wenn True dann zeige Fenster "Gelungen" an.
if RegSoundAnAus(True) = True then ShowMessage('Gelungen');
end;
Wenn Sie nun das Programm ausführen dann können Sie den Sound wie im Beispiel systemweit anschalten. Dies hat in dem Beispiel zur Folge, dass sie bei der Eingabe von Daten bei dem Sie im Edit-Feld, 10 Zeichen nicht überschreiten dürfen ein Klang ertönt. Sobald sie das 11. Zeichen eingeben wollen erscheint ein Signalton bei angeschaltetem Signalton. Mit:
if RegSoundAnAus(false) = True then...
können Sie alle Signaltöne ausschalten. Das kann von Vorteil aber auch von Nachteil sein. Damit die Änderungen wirksam werden, muss sich der Benutzer abmelden. Beim nächsten Start von Windows sind die Einstellungen aktiv.
Diese Funktion habe ich mit Windows XP , 7 , 10 getestet.