beep在win98下:是使用机器喇叭怎么到了win2000下就变了呢?gz

解决方案 »

  1.   

    VB不具备调用汇编语言的能力,所以可以用VC写个DLL,直接对端口61H操作。61H就是PC喇叭。
      

  2.   

    dll不必要自己编写了。网上有现成的。你可以下载一个。不过你的需求也太奇怪了。原本beep函数就很好用。他并不是总是用声卡发音的。他是如果检测到有声卡,就用声卡发音,如果没有声卡,就会用机箱喇叭发音。很好用啊。为什么不用beep呢
      

  3.   

    Private Declare Function Beep Lib "kernel32" (ByVal dwFreq As Long, ByVal dwDuration As Long) As Long
    Private Sub Form_Activate()
        Dim Cnt As Long
        For Cnt = 0 To 5000 Step 10
            'play a tone of 'Cnt' hertz, for 50 milliseconds
            Beep Cnt, 50
            Me.Caption = Cnt
            DoEvents
        Next Cnt
    End Sub
      

  4.   

    我的程序是用在机房的,不一定有音箱啊,只能用机器喇叭了,Beep是不行了,有什么新的函数吗
      

  5.   

    Res
    Terminal Services: The beep is redirected to the client. Windows 95/98/Me: On computers with a sound card, the function plays the default sound event. On computers without a sound card, the function plays the standard system beep.
      

  6.   

    Beep
    The Beep function generates simple tones on the speaker. The function is synchronous; it does not return control to its caller until the sound finishes. BOOL Beep(
      DWORD dwFreq,      // sound frequency
      DWORD dwDuration   // sound duration
    );
    Parameters
    dwFreq 
    Windows NT/ 2000: [in] Specifies the frequency, in hertz, of the sound. This parameter must be in the range 37 through 32,767 (0x25 through 0x7FFF). 
    dwDuration 
    Windows NT/ 2000: [in] Specifies the duration, in milliseconds, of the sound. 
    Return Values
    If the function succeeds, the return value is nonzero.If the function fails, the return value is zero. To get extended error information, call GetLastError. Res
    Windows 95: The Beep function ignores the dwFreq and dwDuration parameters. On computers with a sound card, the function plays the default sound event. On computers without a sound card, the function plays the standard system beep
      

  7.   

    到api查看器里面查messagebeep的定义吧,参数好像给个1就行,或者试一下200可以不,如果时间太短可以用for语句循环几次