웹페이지를 탐색할 때 딸칵 소리가 나는 것은 '제어판 > 사운드 및 오디오 장치 > 소리 > Windows 탐색기 > 탐색 시작' 에 정의되어 있는 wav 파일을 재생하는 것이다.
프로그램에서 이걸 잠깐 안하고 싶으면 레지스트리를 건드리면 된다.
HKEY_CURRENT_USER\AppEvents\Schemes\Apps\Explorer\Navigating\.Current 키의 기본값을 빈값으로 만들면 OK.
아래는 델파이 예제.
버튼1을 누르면 소리를 없애고, 버튼2를 누르면 다시 복구시킴.
unit Project1;
interface;
uses
Windows, Messages, Classes, SysUtils, Graphics, Controls, Forms, Dialogs, StdCtrls, Registry;
type
TForm1=class(TForm)
Button1: TButton;
Button2: TButton;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
NavigatingSound: String;
procedure SetNavigatingSound(Flag: String);
end;
implementation
procedure TForm1.Button1Click(Sender: TObject);
begin
SetNavigatingSound('ON');
end;
procedure TForm1.Buttn2Click(Sender: TObject);
begin
SetNavigatingSound('OFF');
end;
procedure TForm1.SetNavigatingSound(Flag: String);
var Reg: TRegistry;
begin
Reg:=TRegistry.Create;
try
Reg.RootKey:=HKEY_CURRENT_USER;
if Reg.OpenKey('AppEvents\Schemes\Apps\Explorer\Navigating\.Current', False) then begin
if Reg.ValueExists('') then begin
// SOUND ON
if Flag='ON' then Reg.WriteString('', Self.NavigatingSound)
// SOUND OFF
else if Flag='OFF' begin
Self.NavigatingSound:=Reg.ReadString('');
Reg.WriteString('', '');
end;
end;
end;
finally
FreeAndNil(Reg);
end;
end;
interface;
uses
Windows, Messages, Classes, SysUtils, Graphics, Controls, Forms, Dialogs, StdCtrls, Registry;
type
TForm1=class(TForm)
Button1: TButton;
Button2: TButton;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
NavigatingSound: String;
procedure SetNavigatingSound(Flag: String);
end;
implementation
procedure TForm1.Button1Click(Sender: TObject);
begin
SetNavigatingSound('ON');
end;
procedure TForm1.Buttn2Click(Sender: TObject);
begin
SetNavigatingSound('OFF');
end;
procedure TForm1.SetNavigatingSound(Flag: String);
var Reg: TRegistry;
begin
Reg:=TRegistry.Create;
try
Reg.RootKey:=HKEY_CURRENT_USER;
if Reg.OpenKey('AppEvents\Schemes\Apps\Explorer\Navigating\.Current', False) then begin
if Reg.ValueExists('') then begin
// SOUND ON
if Flag='ON' then Reg.WriteString('', Self.NavigatingSound)
// SOUND OFF
else if Flag='OFF' begin
Self.NavigatingSound:=Reg.ReadString('');
Reg.WriteString('', '');
end;
end;
end;
finally
FreeAndNil(Reg);
end;
end;
'Delphi' 카테고리의 다른 글
[Delphi] TWebBrowser에서 세션아이디(SessionID) 가져오기 (0) | 2010.06.17 |
---|---|
[Delphi] 다른 프로그램의 메뉴 실행시키기 (0) | 2010.06.14 |
[Delphi] 실행되고 있는 모듈의 이름 알아내기 (0) | 2010.06.09 |
[Delphi] 바탕화면, 시작메뉴>프로그램 등 특수 디렉토리 가져오기 (0) | 2010.06.08 |
[Delphi] bsNone이면서 Resize는 가능한 폼 (0) | 2010.06.08 |