to tfrist(tfrist): 不可以。to NowCan(能量、激情、雨水、彩虹——雷雨云): 可以用汇编写子程序试试看。
使机箱内的小喇叭发出不同的声音 使用VB中的beep语句只能发出一种声音。如果想发出不同声音,可以使用API函数。Option Explicit Private Declare Function APIBeep Lib "kernel32" Alias "Beep" (ByVal dwFreq As Long, ByVal dwDuration As Long) As LongPrivate Sub Command1_Click() Dim frequency As Long frequency = CLng(txtFrequency.Text) APIBeep frequency, 500 End Sub
没有那么简单。 在win98下,Beep发声函数会被声卡截获。而且与控制面板中的声音设置有关。
转贴 开始发声: WORD Freq; Freq=22000; //22KHz Freq=WORD(1193181/long(Freq)); __asm { push bx in al,0x61 mov bl, aL and aL, 3 jne Skip mov aL, bL or aL, 3 out 0x61, aL mov aL, 0xB6 out 0x43, aL
Skip: mov ax, Freq out 0x42, aL mov aL, ah out 0x42, aL pop bx } 终止发声: __asm { in al, 0x61 and al,0xFC out 0x61,al }时间控制自己弄个定时器就可以了。
不可以。to NowCan(能量、激情、雨水、彩虹——雷雨云):
可以用汇编写子程序试试看。
使用VB中的beep语句只能发出一种声音。如果想发出不同声音,可以使用API函数。Option Explicit
Private Declare Function APIBeep Lib "kernel32" Alias "Beep" (ByVal dwFreq As Long, ByVal dwDuration As Long) As LongPrivate Sub Command1_Click()
Dim frequency As Long frequency = CLng(txtFrequency.Text)
APIBeep frequency, 500
End Sub
在win98下,Beep发声函数会被声卡截获。而且与控制面板中的声音设置有关。
开始发声: WORD Freq;
Freq=22000; //22KHz
Freq=WORD(1193181/long(Freq));
__asm
{
push bx
in al,0x61
mov bl, aL
and aL, 3
jne Skip
mov aL, bL
or aL, 3
out 0x61, aL
mov aL, 0xB6
out 0x43, aL
Skip: mov ax, Freq
out 0x42, aL
mov aL, ah
out 0x42, aL
pop bx
}
终止发声:
__asm
{
in al, 0x61
and al,0xFC
out 0x61,al
}时间控制自己弄个定时器就可以了。