请叫高手,怎么使主板的那个小喇叭发出不同的声音啊?
能否告诉我几种不同的发声方法?谢谢了!

解决方案 »

  1.   

    Procedure Beep(nFreq, nDura: Word);//nFreq:频率、nDura:持续时间(单位:毫秒)
    var
      VerInfo: TOSVersionInfo;
      nStart: DWord;
    begin
      VerInfo.dwOSVersionInfoSize := SizeOf(VerInfo);
      GetVersionEx(VerInfo);//获取平台和操作系统相关的版本信息
      if VerInfo.dwPlatformId = VER_PLATFORM_WIN32_NT then//如果是NT内核(WinNT、Win2000、WinXP、Win2003)
        Windows.Beep(nFreq, nDura)//直接调用API Beep
      else//其它操作系统(Win3.X、Win9X、WinMe)
      begin
        //通过嵌入ASM实现
        asm
                PUSH    BX
                IN      AL,     $61
                MOV     AL,     AL
                AND     AL,     3
                JNE     @@Skip
                MOV     AL,     BL
                OR      AL,     3
                OUT     $61,    AL
                MOV     AL,     $B6
                OUT     $43,    AL
        @@Skip:   
                MOV     AX,     nFreq
                OUT     $42,    AL
                MOV     AL,     AH
                OUT     $42,    AL
                POP     BX
        end;
        nStart := GetTickCount;
        repeat
          Application.ProcessMessages;
        Until GetTickCount > nStart + nDura;
        asm
                IN      AL,     $61
                AND     AL,     $FC
                OUT     $61,    AL
        end;
      end;
    end;
      

  2.   

    windows.beep(523,500);    //1
        windows.beep(587,500);    //2
        windows.beep(659,500);     //3
        windows.beep(698,500);      // 4
        windows.beep(784,500);      // 5
        windows.beep(880,500);       // 6
        windows.beep(998,500);       // 7
        windows.beep(1047,500);
        windows.beep(998,500);
        windows.beep(880,500);
        windows.beep(784,500);
        windows.beep(698,500);
        windows.beep(659,500);
        windows.beep(587,500);
        windows.beep(523,500);
      

  3.   

    可以用api messagebeep
    如楼上的
    不过好象在98下不行
      

  4.   

    windows.beep应该能满足楼主的需要了
      

  5.   

    windows.beep(587,500);
        windows.beep(523,500);