어떻게 해야되나요...
beep 나 MessageBeep는 외부스피커에서만 소리가 나네요...
컴퓨터 하드웨어(?)에서 발생시킬수 있는 방법좀 알려주세염....
부팅할때....메모리나...기타 하드웨어적인 에러가 나면...삑~하고 소리가 나는데....
저두 그렇게 하구 싶거던요.
간단한 모니터링툴인데 이거 하나때문에 모든컴터에 스피커를 연결할수도엄꼬해서....
-_-;;
질문드립니다.....
아시는 분 꼭좀 부탁드립니다.
답변하시는 모든분께...행운이 가득하길....
^^;;
새해복많이 받으세요...
아래 코드를 한번 사용해보세요.
pc 에 만일 스피커가 없으면, 어셈블러 코드에서 오류가 나기 때문에
예외처리 해 주시구여
그럼~ 항상 즐거운 프로그래밍 하시길~
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls;
type
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.DFM}
// Sound(frequencies)
procedure BeepStart(pitch:SMALLINT);
asm
mov bx, pitch
mov ax, 34DDh
mov dx, 0012h
cmp dx, bx
jnb @stop
div bx
mov bx, ax
in al, 61h
test al, 3
jne @j1
or al, 3
out 61h, al
mov al, 0B6h
out 43h, al
@j1:
mov al, bl
out 42h, al
mov al, bh
out 42h, al
@stop:
end;
// NoSound
procedure BeepStop;
asm
in al,61H
and al, 0fcH
out 61H, al
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
BeepStart(100); // 100은 주파수
Sleep(500); // 0.5초 지연
BeepStop;
BeepStart(500);
Sleep(500);
BeepStop;
BeepStart(1500);
Sleep(500);
BeepStop;
BeepStart(2000);
Sleep(500);
BeepStop;
end;