Как сделать beep?

Discussion in 'С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby' started by Chaak, 12 Aug 2008.

  1. Chaak

    Chaak Elder - Старейшина

    Joined:
    1 Jun 2008
    Messages:
    1,059
    Likes Received:
    1,067
    Reputations:
    80
    Как сделать beep(звук сис. спикера) на любом скриптовом языке? Желательно на BAT или VBS

    интересует изменение тонов . . .
     
    #1 Chaak, 12 Aug 2008
    Last edited: 12 Aug 2008
  2. _antony

    _antony Elder - Старейшина

    Joined:
    16 Jul 2008
    Messages:
    80
    Likes Received:
    43
    Reputations:
    0
    Смотри MessageBeep()
    http://msdn.microsoft.com/en-us/library/ms680356(VS.85).aspx
     
    1 person likes this.
  3. elimS2

    elimS2 Elder - Старейшина

    Joined:
    21 Mar 2008
    Messages:
    195
    Likes Received:
    159
    Reputations:
    11
    насколько знаю єто в скриптах vbs работаь не будет. если знаешь как вызвать эту функцию в vbs скрипте - раскажи, с меня +

    касательно вопроса:
    vbs
    1-й способ:

    Code:
    set wshShell = Wscript.CreateObject("wscript.Shell")
    beep = chr(007)
    WshShell.Run "cmd /c @echo " & beep, 0
    2-й способ:

    Code:
    strSoundFile = "C:\WINNT\Media\Notify.wav"
    Set objShell = CreateObject("Wscript.Shell")
    strCommand = "sndrec32 /play /close " & chr(34) & strSoundFile & chr(34)
    objShell.Run strCommand, 0, True

    во втором способе мы просто проигрываем один из стандартных звуковых файлов ОС

    upd: перепрочитал вопрос, заметил что ты говоришь на счет спикера и изменения тонов. тогда второй способ отпадает. в первом способе проигрываеться только один тон с стандартной задержкой. насколько я знаю - других варинтов нету. сам хотел своей девушке переслать смской текст vbs скрипта пианино-клавиатуры))) чтоб было себя чем развлечь в селе где был только ноут. долго очень копал, но не нашел. везде пишут что в vbs не была заложена такая функциональность
     
    #3 elimS2, 13 Aug 2008
    Last edited: 13 Aug 2008
    1 person likes this.
  4. Chaak

    Chaak Elder - Старейшина

    Joined:
    1 Jun 2008
    Messages:
    1,059
    Likes Received:
    1,067
    Reputations:
    80
    Мне нужно сделать определенную задержку. Типа для азбуки морзе.

    А на си так можно сделать?
     
  5. elimS2

    elimS2 Elder - Старейшина

    Joined:
    21 Mar 2008
    Messages:
    195
    Likes Received:
    159
    Reputations:
    11
    да, тогда MessageBeep подходит.

    хотя думаю лучше это:

    http://msdn.microsoft.com/en-us/library/ms679277(VS.85).aspx

    BOOL WINAPI Beep(
    __in DWORD dwFreq,
    __in DWORD dwDuration
    );

    Parameters

    dwFreq [in] The frequency of the sound, in hertz. This parameter must be in the range 37 through 32,767 (0x25 through 0x7FFF).

    dwDuration [in] The duration of the sound, in milliseconds.

    Example Code [C++]
    The following example demonstrates the use of this function.
    Beep( 750, 300 );
     
    #5 elimS2, 13 Aug 2008
    Last edited: 13 Aug 2008