Автор Тема: [Автоматизация] повторение воспроизведения звука  (Прочитано 3967 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн tenitii [?]

  • Новичок
  • *
  • Сообщений: 26
  • Репутация: 0
    • Награды
как можно зделать так чтоб звук воспроизводился пока не нажмеш ок

Код: AutoIt [Выделить]
While 1
    If FileExists("C:\STAMP") Then
      SoundSetWaveVolume(100)
      SoundPlay("C:\Windows\media\tada.wav")
      MsgBox(0, '', 'CONTROLLARE STAMPANTE')
      FileDelete("C:\STAMP")
    EndIf
WEnd


Русское сообщество AutoIt


Оффлайн Garrett [?]

  • Глобальный модератор
  • *
  • Сообщений: 3573
  • Репутация: 923
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.12.0
Вот так:
Код: AutoIt [Выделить]
While 1
    If FileExists("C:\STAMP") Then
        SoundSetWaveVolume(100)
        SoundPlay("C:\Windows\media\tada.wav")
        MsgBox(0, '', 'CONTROLLARE STAMPANTE')
        DirRemove ("C:\STAMP")
    EndIf
WEnd


Скорблю и помню.




Оффлайн tenitii [?]

  • Новичок
  • *
  • Сообщений: 26

  • Автор темы
  • Репутация: 0
    • Награды
нет не так хочу чтоб звук проигрывал пока не нажмеш ок

Оффлайн madmasles [?]

  • Глобальный модератор
  • *
  • Сообщений: 7790
  • Репутация: 2312
  • Пол: Мужской
  • Награды За модерирование форума
    • Награды
  • Версия AutoIt: 3.3.x.x
tenitii
Попробуйте так:
Код: AutoIt [Выделить]
While 1
    $hFile = FileOpen("C:\STAMP", 2)
    FileClose($hFile)
    If FileExists("C:\STAMP") Then
        $ahCallBack = _CallBack_Init("_Function", 1100)
        MsgBox(0, '', 'CONTROLLARE STAMPANTE')
        _CallBack_Free($ahCallBack)
        If FileDelete("C:\STAMP") Then ExitLoop
    EndIf
    Sleep(10)
WEnd
MsgBox(0, '', 'FileDelete')

Func _Function()
    SoundPlay("C:\Windows\media\tada.wav")
EndFunc   ;==>_Function

Func _CallBack_Init($sFuncName, $iTime, $sParam = "")
    Local $hCallBack = DllCallbackRegister($sFuncName, "int", $sParam)
    Local $aTimer = DllCall("user32.dll", "uint", "SetTimer", _
            "hwnd", 0, "uint", 0, "int", $iTime, "ptr", DllCallbackGetPtr($hCallBack))
    Local $ahCallBack[2] = [$hCallBack, $aTimer[0]]
    Return $ahCallBack
EndFunc   ;==>_CallBack_Init

Func _CallBack_Free($ahCallBack)
    If $ahCallBack[0] <> -1 Then DllCallbackFree($ahCallBack[0])
    If $ahCallBack[1] <> -1 Then DllCall("user32.dll", "int", "KillTimer", "hwnd", 0, "uint", $ahCallBack[1])
EndFunc   ;==>_CallBack_Free


Русское сообщество AutoIt

Re: [Автоматизация] повторение воспроизведения звука
« Ответ #3 Отправлен: Август 05, 2010, 19:32:26 »

Оффлайн Yashied [?]

  • AutoIt MVP
  • Глобальный модератор
  • *
  • Сообщений: 5379
  • Репутация: 2687
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.x.x
Можно сделать все намного проще.

Код: AutoIt [Выделить]
#NoTrayIcon

If ($CmdLine[0] > 0) And ($CmdLine[1] = '/play') Then
    SoundSetWaveVolume(100)
    While 1
        SoundPlay(@WindowsDir & '\Media\tada.wav', 0)
        Sleep(1000)
    WEnd
EndIf

;If FileExists('C:\STAMP') Then
    If Not @compiled Then
        $PID = Run(@AutoItExe & ' "' & @ScriptFullPath & '" /play' )
    Else
        $PID = Run(@ScriptFullPath & ' /play ')
    EndIf
    MsgBox(0, '', 'CONTROLLARE STAMPANTE')
    If $PID Then
        ProcessClose($PID)
    EndIf
;   DirRemove('C:\STAMP')
;EndIf



Думай, прежде чем говорить.

Оффлайн tenitii [?]

  • Новичок
  • *
  • Сообщений: 26

  • Автор темы
  • Репутация: 0
    • Награды
всем спасибо все работает как я и хотел !

Оффлайн Garrett [?]

  • Глобальный модератор
  • *
  • Сообщений: 3573
  • Репутация: 923
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.12.0
Yashied  [?]
Цитировать
Можно сделать все намного проще.
Всё гениальное просто!
Нужно перечитать Using Autoit ;D
Отличный пример Yashied :ok:

Оффлайн CreatoR [?]

  • Администратор
  • *
  • Сообщений: 7758
  • Репутация: 2274
  • Пол: Мужской
  • AutoIt is simple, subtle, elegant
    • CreatoR's Lab
    • Награды
  • Версия AutoIt: 3.3.10.2
Yashied  [?]
Цитировать
Можно сделать все намного проще
Таким образом иконка остаётся висеть в трее, лучше проверять окно MsgBox'а. Да и проверка на компиляцию не обязательна:

Код: AutoIt [Выделить]
If $CmdLine[0] > 0 And $CmdLine[1] = '/play' Then
    SoundSetWaveVolume(100)
   
    While WinExists('Play', 'CONTROLLARE STAMPANTE')
        SoundPlay(@WindowsDir & '\Media\tada.wav', 0)
        Sleep(1000)
    WEnd
   
    Exit
EndIf

;If FileExists('C:\STAMP') Then
    ShellExecute(@ScriptFullPath, '/play')
    MsgBox(0, 'Play', 'CONTROLLARE STAMPANTE')
;   DirRemove('C:\STAMP')
;EndIf



Правила, Поиск, Супер тема


AutoIt is simple, subtle, elegant.


«Не оказываю тех. поддержку через ПМ/ICQ, и по электронной почте - для этого есть форум. (C)»
«Законы Мэрфи неоспоримы!»


Мои работы

Русское сообщество AutoIt

Re: [Автоматизация] повторение воспроизведения звука
« Ответ #7 Отправлен: Август 06, 2010, 18:07:03 »

Оффлайн Yashied [?]

  • AutoIt MVP
  • Глобальный модератор
  • *
  • Сообщений: 5379
  • Репутация: 2687
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.x.x
Таким образом иконка остаётся висеть в трее...

Я же поставил #NoTrayIcon, а для установки иконки можно использовать TraySetIcon(). А вообще, я бы использовал функцию _WinAPI_PlaySound():

Код: AutoIt [Выделить]
#Include <WinAPIEx.au3>

;If FileExists('C:\STAMP') Then
    _WinAPI_PlaySound(@WindowsDir & '\Media\tada.wav', BitOR($SND_ASYNC, $SND_FILENAME, $SND_LOOP))
    MsgBox(0, '', 'CONTROLLARE STAMPANTE')
    _WinAPI_PlaySound('', 0)
;   DirRemove('C:\STAMP')
;EndIf


Проще уже некуда.

Оффлайн CreatoR [?]

  • Администратор
  • *
  • Сообщений: 7758
  • Репутация: 2274
  • Пол: Мужской
  • AutoIt is simple, subtle, elegant
    • CreatoR's Lab
    • Награды
  • Версия AutoIt: 3.3.10.2
Yashied  [?]
Цитировать
Я же поставил #NoTrayIcon
Сорри, я не заметил, точнее не скопировалась она.

Цитировать
я бы использовал функцию _WinAPI_PlaySound()
Хорошая функция.

Русское сообщество AutoIt

Re: [Автоматизация] повторение воспроизведения звука
« Ответ #9 Отправлен: Август 06, 2010, 20:50:40 »

 

Похожие темы

  Тема / Автор Ответов Последний ответ
1 Ответов
3810 Просмотров
Последний ответ Ноябрь 26, 2009, 10:44:51
от Medic84
10 Ответов
3271 Просмотров
Последний ответ Декабрь 14, 2011, 14:39:45
от running-frag
3 Ответов
2869 Просмотров
Последний ответ Апрель 07, 2012, 17:29:38
от Vadimmm0072
0 Ответов
1686 Просмотров
Последний ответ Май 04, 2012, 22:51:37
от Merlin71
2 Ответов
1518 Просмотров
Последний ответ Июль 07, 2012, 01:16:03
от asdf8
0 Ответов
456 Просмотров
Последний ответ Декабрь 16, 2014, 21:13:48
от Rinfes
3 Ответов
1557 Просмотров
Последний ответ Январь 01, 2016, 17:06:52
от Yashied
7 Ответов
996 Просмотров
Последний ответ Август 01, 2015, 18:00:28
от madmasles
0 Ответов
121 Просмотров
Последний ответ Январь 05, 2017, 21:15:51
от mitiya
3 Ответов
235 Просмотров
Последний ответ Январь 11, 2017, 15:23:59
от ra4o