denetim masası, ses denetiminde windows a ve diğer uygulamalara ait sesleri yönetebildiğiniz bir pencere var, yukarıdaki gibi. buraya kendi uygulamamızın ses olaylarını eklemek ve kontrol etmek için, gerekli registry ayarları ve kullanımı :
(not: xp harici sistemlerde denenmedi!)
Kod: Tümünü seç
procedure AddSoundEvent(sKeyName,sComment,sDefaultFile:string);
var Reg:TRegistry;
sAppName : string;
procedure setRegistry(sPath,sKey,sValue:string);
begin
if not Reg.KeyExists(sPath) then
begin
Reg.OpenKey(sPath,TRUE);
Reg.WriteString(sKey,sValue);
Reg.CloseKey;
end;
end;
begin
try
sAppName := copy(ExtractFileName(Application.ExeName),1,length(ExtractFileName(Application.ExeName))-4);
Reg:=TRegistry.Create;
Reg.RootKey := HKEY_CURRENT_USER;
// Program group & Sound
setRegistry('AppEvents\Schemes\Apps\'+sAppName+'\'+sKeyName,'',sKeyName);
// default key
setRegistry('AppEvents\Schemes\Apps\'+sAppName+'\'+sKeyName+'\.default','',sDefaultFile);
// current key
setRegistry('AppEvents\Schemes\Apps\'+sAppName+'\'+sKeyName+'\.current','',sDefaultFile);
// event kaydet
setRegistry('AppEvents\EventLabels\'+sKeyName,'',sComment);
finally
Reg.CloseKey;
Reg.Free;
end;
end;
Kod: Tümünü seç
procedure TForm1.Button2Click(Sender: TObject);
begin
PlaySound('COMMIT', 0, SND_ASYNC or SND_ALIAS or SND_APPLICATION or SND_NODEFAULT);
end;
Kod: Tümünü seç
procedure TForm1.Button3Click(Sender: TObject);
begin
WinExec(PChar('control mmsys.cpl,,1'),SW_SHOWNORMAL);
end;
formun creatinde sisteme event adları kayıtlı değilse kaydediliyor.
Kod: Tümünü seç
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs,StdCtrls,
Registry, // registry okumak için
MMSystem; // play sound apisi
type
TForm1 = class(TForm)
Button2: TButton;
Button3: TButton;
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
procedure AddSoundEvent(sKeyName,sComment,sDefaultFile:string);
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure AddSoundEvent(sKeyName,sComment,sDefaultFile:string);
var Reg:TRegistry;
sAppName : string;
procedure setRegistry(sPath,sKey,sValue:string);
begin
if not Reg.KeyExists(sPath) then
begin
Reg.OpenKey(sPath,TRUE);
Reg.WriteString(sKey,sValue);
//Reg.WriteExpandString(sKey,sValue);
Reg.CloseKey;
end;
end;
begin
try
sAppName := copy(ExtractFileName(Application.ExeName),1,length(ExtractFileName(Application.ExeName))-4);
Reg:=TRegistry.Create;
Reg.RootKey := HKEY_CURRENT_USER;
// Program group & Sound
setRegistry('AppEvents\Schemes\Apps\'+sAppName+'\'+sKeyName,'',sKeyName);
// default key
setRegistry('AppEvents\Schemes\Apps\'+sAppName+'\'+sKeyName+'\.default','',sDefaultFile);
// current key
setRegistry('AppEvents\Schemes\Apps\'+sAppName+'\'+sKeyName+'\.current','',sDefaultFile);
// event kaydet
setRegistry('AppEvents\EventLabels\'+sKeyName,'',sComment);
finally
Reg.CloseKey;
Reg.Free;
end;
end;
procedure TForm1.Button3Click(Sender: TObject);
begin
WinExec(PChar('control mmsys.cpl,,1'),SW_SHOWNORMAL);
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
AddSoundEvent('COMMIT','Kayıt onaylandı','');
AddSoundEvent('ROLLBACK','Kayıt onaylanmadı','');
AddSoundEvent('ALARM1','Alarm var','');
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
PlaySound('COMMIT', 0, SND_ASYNC or SND_ALIAS or SND_APPLICATION or SND_NODEFAULT);
end;
end.