|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » [архив - Часть 2] AutoIt скрипты |
|
[архив - Часть 2] AutoIt скрипты
|
(*.*) Сообщения: 36568 |
Внимание! Тема переведена в архивное состояние Текущая тема http://forum.oszone.net/thread-98914.html (настоятельно рекомендуется к прочтению/поиску) Руководство к действию по работе c AutoIt. ![]() Сайт программы Русская справка Коллекция AutoIt скриптов от Sanja Alone Коллекция AutoIt скриптов от MSFN (могут быть устаревшие). Справочник по командам rundll32 (команды запуска диалоговых окон и не только...) AutoIt скрипты - введение и FAQ (статья содержит вводную информацию по AutoIt, а также ответы на ЧаВо). Данная тема предназначена для общих вопросов по AutoIt. Вопросы по установке приложений при помощи AutoIt следует задавать в соответствии с правилами форума "Автоматическая установка приложений". Таким образом, если вы хотите узнать как установить Winamp 5.x при помощи AutoIt, то создайте тему [autoit] Winamp 5.х (если таковой еще нет на форуме). Проверить наличие тем можно при помощи поиска или фильтров. Цитата Vadikan:
|
||
------- Отправлено: 00:02, 05-02-2006 |
Старожил Сообщения: 205
|
Профиль | Отправить PM | Цитировать Creat0R,
Цитата Creat0R:
Жаль только у меня код не работает. Монитор выключается и тут же включается. Я сделал следующим образом и это работает: Opt("WinTitleMatchMode", 4) HotKeySet("{F11}", "Monitor_Off") HotKeySet("{F10}", "Monitor_On") $Monitor = 'On' While 1 Sleep(100) If $Monitor = 'On' Then Local $hwnd = WinGetHandle('classname=Progman') DllCall('user32.dll', 'int', 'SendMessage', 'hwnd', $hwnd, 'int', 274, 'int', 61808, 'int', -1) EndIf If $Monitor = 'Off' Then Local $hwnd = WinGetHandle('classname=Progman') Sleep(100) DllCall('user32.dll', 'int', 'SendMessage', 'hwnd', $hwnd, 'int', 274, 'int', 61808, 'int', 2) EndIf WEnd Func Quit() Monitor_On() Exit EndFunc Func Monitor_On() $Monitor = 'On' EndFunc Func Monitor_Off() $Monitor = 'Off' EndFunc |
|
Отправлено: 09:50, 09-08-2007 | #271 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Ветеран Сообщения: 604
|
Профиль | Отправить PM | Цитировать Creat0R
Плз глянь скрипт, что не так? Скрипт запускается из корня диска "C:\". Если открываю mp3-файл на диске "C:\", то файл проигрывается нормально, если открываю mp3-файл на диске "D:\", скажем "D:\Music\Taxi\TAXY-4.mp3", то тоже всё нормально, но если в пути или имени файла есть пробелы, то файл не проигрывается, причём такой глюк, только если файл на "D:\" диске, с "C:\" диском, всё нормально. #include <GUIConstants.au3> #include <Sound.au3> #include <Array.au3> #Include <File.au3> Dim $m3u_array, $sound, $sleep, $i = 1 $file = "" GUICreate("Player", 300, 200, -1, -1, -1) GUISetIcon(@ProgramFilesDir & "\Winamp\winamp.exe", 0) GUISetBkColor(0xA6CAF0) GUICtrlCreateLabel("Simple player", 100, 5, 100, 15, -1) ;Menu $menu = GUICtrlCreateMenu("File", -1) $playlist = GUICtrlCreateMenuItem("Open playlist", $menu) GUICtrlCreateMenuItem("", $menu) $quit = GUICtrlCreateMenuItem("Quit", $menu) ;Button $play = GUICtrlCreateButton("Play", 10, 115, 60) $open = GUICtrlCreateButton("Open", 10, 10, 60) $stop = GUICtrlCreateButton("Stop", 210, 115, 60) $pause = GUICtrlCreateButton("Pause", 210, 10, 60) ;Slider $slider = GUICtrlCreateSlider(83, 115, 100, 30, -1) GUICtrlSetLimit($slider, 100, 0) GuiCtrlSetData($slider, 100) GUISetState() AdlibEnable("Check", 1000) While 1 $msg = GUIGetMsg() Select Case $msg = $open _SoundClose($sound) $file = FileOpenDialog("Open music file", @MyDocumentsDir & "\Моя музыка", "Music files(*.mp3;*.wav)", 3) Case $msg = $play If (Not $file = "") And (Not _SoundStatus($sound) = "played") Then $sound = _SoundOpen($file) _SoundPlay($sound) EndIf Case $msg = $slider $Read_slider = GUICtrlRead($slider) SoundSetWaveVolume($Read_slider) Case $msg = $Gui_Event_Close Or $msg = $quit Exit Case $msg = $playlist $m3u = FileOpenDialog("Add playlist", "", "Playlist (*.m3u)", 1) If @error Then ContinueLoop _FileReadToArray($m3u, $m3u_array) $sound = _SoundOpen($m3u_array[$i]) _SoundPlay($sound) Case $msg = $stop _SoundStop($sound) _SoundClose($sound) ContinueLoop Case $msg = $pause If Not $sound = "" Then If $sleep = 1 Then _SoundResume($sound) $sleep = 0 Else $sleep = _SoundPause($sound) EndIf EndIf EndSelect WEnd Func Check() $stat = _SoundStatus($sound) If $stat = "stopped" Then If IsArray($m3u_array) Then _SoundClose($sound) $i += 1 $sound = _SoundOpen($m3u_array[$i]) If @error Then Return _SoundPlay($sound) EndIf EndIf EndFunc |
Отправлено: 11:58, 09-08-2007 | #272 |
Must AutoIt Сообщения: 3054
|
Профиль | Сайт | Отправить PM | Цитировать VelDmi,
Цитата:
Цитата:
![]() ![]() Цитата:
Ради проверки, попробуй поставь Beep() после функции _IdleWaitCommit(0) (в цикле где она вызывается), по идее звук должен прозвучать только после первого выключения, и каждый раз при вводе с клавиатуры или мышки. Maza Faka, Цитата:
Maza Faka, Для начала я бы проверил тот же путь который "не работает" напрямую - т.е возьми укажи сразу этот путь (в отдельном скрипте), и просто сделай так: если он играет, значит путь неверно передаётся в момент обработки в теле цикла, если не играет, значит возможно попадаются нестандартные символы в имени файла.. покажи проблематичный путь. |
||||
------- Отправлено: 13:17, 09-08-2007 | #273 |
Ветеран Сообщения: 604
|
Профиль | Отправить PM | Цитировать Creat0R
Не понимаю, вот с таким путём проигрывается: #include <Sound.au3> $OpSound = _SoundOpen("D:\Music\Taxi\TAXY-4.mp3") _SoundPlay($OpSound) While 1 Sleep(1000) WEnd #include <Sound.au3> $OpSound = _SoundOpen("D:\Music\Steve Vai\01 - Bad Horse.mp3") _SoundPlay($OpSound) While 1 Sleep(1000) WEnd ![]() |
------- Отправлено: 15:39, 09-08-2007 | #274 |
Must AutoIt Сообщения: 3054
|
Профиль | Сайт | Отправить PM | Цитировать Maza Faka,
Цитата:
Во-вторых, чтобы окончательно "отсеять вину" самого пути/файла, попробуй проиграть этот же файл используя встроенную функцию SoundPlay(). Я создал у себя точно такой путь, поместил туда файл с точно таким именем, всё нормально играет.. Проблема видимо в самом файле. Если хочешь залей файл, я проверю у себя. |
|
------- Отправлено: 16:25, 09-08-2007 | #275 |
Ветеран Сообщения: 604
|
Профиль | Отправить PM | Цитировать Creat0R
Мистика какая-то. Запускаю скрипт: #include <Sound.au3> $open = _SoundOpen("D:\Music\Steve Vai\01 - Bad Horse.mp3") $play = _SoundPlay($open) MsgBox(0, "", $play) While 1 Sleep(1000) WEnd ![]() Похоже глюк Винды, из каталога "D:\Music\Steve Vai" скопировал все файлы в другой каталог, удалил каталог "D:\Music\Steve Vai", создал его же заново, скопировал туда все mp3-файлы, которые там раньше находились, и о чудо! музыка заиграла! Что за хрень такая? |
------- Отправлено: 17:22, 09-08-2007 | #276 |
Must AutoIt Сообщения: 3054
|
Профиль | Сайт | Отправить PM | Цитировать Maza Faka,
Цитата:
Вообще можно проверять ошибки используя пример из справки: #include <Sound.au3> ;open sound file $sound = _SoundOpen("D:\Music\Steve Vai\01 - Bad Horse.mp3") If @error = 2 Then MsgBox(0, "Error", "The file does not exist") Exit ElseIf @error = 3 Then MsgBox(0, "Error", "The alias was invalid") Exit ElseIf @extended <> 0 Then $extended = @extended ;assign because @extended will be set after DllCall $errorstring = DllCall("winmm.dll","int","mciGetErrorStringA","str",$extended,"str","","int",65534) ;,"hwnd",0) - Это лишнее, у меня с этим скрипт вылетает MsgBox(0, "Error", "The open failed." & @CRLF & "Error Number: " & $extended & @CRLF & "Error Description: " & $errorstring[2] & @CRLF & "Please Note: The sound may still play correctly.") Else MsgBox(0, "Success", "The file opened successfully") EndIf _SoundPlay($sound, 1) _SoundClose($sound) Цитата:
Как получал путь к файлу? ручной ввод? или копирование с адресной строки? (или ещё другими методами). |
||
------- Отправлено: 23:20, 09-08-2007 | #277 |
Ветеран Сообщения: 604
|
Профиль | Отправить PM | Цитировать Creat0R
Цитата Creat0R:
Цитата Creat0R:
Цитата:
Ладно, прекратим этот оффтоп, думаю это частный случай, связанный с моим компом. |
|||
------- Отправлено: 10:15, 10-08-2007 | #278 |
Пользователь Сообщения: 135
|
Профиль | Отправить PM | Цитировать Creat0R
Цитата:
![]() ![]() |
|
Отправлено: 15:16, 10-08-2007 | #279 |
Must AutoIt Сообщения: 3054
|
Профиль | Сайт | Отправить PM | Цитировать Maza Faka,
Цитата:
![]() ![]() ![]() Diamond, Цитата:
Немного(?) переделал под свои нужды: While 1 $KeyIsPressed = _KeyIsPressed() If $KeyIsPressed Then MsgBox(64, "Pressed/Clicked:", $KeyIsPressed) Sleep(10) WEnd Func _KeyIsPressed() Local $KeyBoardLayoutArr = StringSplit("{LMouse}|{RMouse}|{}|(MMouse}|{}|{}|{}|{BACKSPACE}|{TAB}|{}|{}|{}|{ENTER}|{}|{}|{SHIFT}|{CTRL}|{ALT}|{PAUSE}|{CAPSLOCK}|{}|{}|{}|{}|{}|{}|{ESC}|{}|{}|{}|{]|{SPACE}|{PGUP}|{PGDN}|{END}|{HOME}|{LEFT}|{UP}|{RIGHT}|{DOWN}|{SELECT}|{PRINTSCREEN}|{}|{PRINTSCREEN}|{INSERT}|{DEL}|{}|0|1|2|3|4|5|6|7|8|9|{}|{}|{}|{}|{}|{}|{}|a|b|c|d|e|f|g|h|i|j|k|l|m|n|o|p|q|r|s|t|u|v|w|x|y|z|{LWIN}|{RWIN}|{APPSKEY}|{}|{SLEEP}|{numpad0}|{numpad1}|{numpad2}|{numpad3}|{numpad4}|{numpad5}|{numpad6}|{numpad7}|{numpad8}|{numpad9}|{NUMPADMULT}|{NUMPADADD}|{}|{NUMPADSUB}|{NUMPADDOT}|{NUMPADDIV}|{F1}|{F2}|{F3}|{F4}|{F5}|{F6}|{F7}|{F8}|{F9}|{F10}|{F11}|{F12}|{F13}|{F14}|{F15}|{F16}|{F17}|{F18}|{F19}|{F20}|{F21}|{F22}|{F23}|{F24}|{}|{}|{}|{}|{}|{}|{}|{}|{NUMLOCK}|{}|{}|{}|{}|{}|{}|{}|{}|{}|{}|{}|{}|{}|{}|{}|{SHIFT}|{SHIFT}|{CTRL}|{CTRL}|{ALT}|{ALT}|{BROWSER_BACK}|{BROWSER_FORWARD}|{BROWSER_REFRESH}|{BROWSER_STOP}|{BROWSER_SEARCH}|{BROWSER_FAVORITES}|{BROWSER_HOME}|{VOLUME_MUTE}|{VOLUME_DOWN}|{VOLUME_UP}|{MEDIA_NEXT}|{MEDIA_PREV}|{MEDIA_STOP}|{MEDIA_PLAY_PAUSE}|{LAUNCH_MAIL}|{LAUNCH_MEDIA}|{LAUNCH_APP1}|{LAUNCH_APP2}|{}|{}|;|{+}|,|{-}|.|/|`|{}|{}|{}|{}|{}|{}|{}|{}|{}|{}|{}|{}|{}|{}|{}|{}|{}|{}|{}|{}|{}|{}|{}|{}|{}|{}|[|\|]|'", "|") Local $a_R For $i = 0 To 165 $a_R = DllCall("user32.dll", "int", "GetAsyncKeyState", "int", '0x' & Hex($i,2)) If Not @error And BitAND($a_R[0], 0x8000) = 0x8000 Then Return $KeyBoardLayoutArr[$i] Next Sleep(40) Return 0 EndFunc |
||
------- Отправлено: 16:08, 10-08-2007 | #280 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Открывая 7z архив пишет не удаётся открыть как архив. Можно ли его восстановить? | DreDo | Хочу все знать | 4 | 01-12-2009 18:54 | |
[Архив - Часть 3] AutoIt скрипты .:[общие вопросы]:. | Vadikan | AutoIt | 1543 | 18-01-2009 10:46 | |
[Архив - Часть 1.3] AutoIt скрипты | biork | AutoIt | 503 | 09-06-2007 11:27 | |
[Архив - Часть 1.2] AutoIt скрипты | Dirk Diggler | AutoIt | 505 | 02-12-2006 11:00 | |
[Архив - Часть 1.1] AutoIt скрипты | EgOrus | AutoIt | 335 | 04-02-2006 16:58 |
|