|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » [архив - Часть 2] AutoIt скрипты |
|
[архив - Часть 2] AutoIt скрипты
|
(*.*) Сообщения: 36549 |
Профиль | Сайт | Отправить PM | Цитировать
Внимание! Тема переведена в архивное состояние Текущая тема 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 |
Пользователь Сообщения: 135
|
Профиль | Отправить PM | Цитировать Creat0R
Цитата:
|
|
Отправлено: 05:37, 29-07-2007 | #211 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Ветеран Сообщения: 604
|
Профиль | Отправить PM | Цитировать А как можно проиграть плейлист? Никак не получается, проигрывается первый трэк и скрипт завершается, кому не лень, гляньте плз.
#include <GUIConstants.au3> $file = "" GUICreate("Player", 300, 200, -1, -1, -1) GUISetIcon(@ProgramFilesDir & "\Winamp\winamp.exe", 0) GUICtrlCreateLabel("Simple player", 100, 5, 100, 15, -1) ;Progress ;$progress = GUICtrlCreateProgress(90, 25, 150, 15) ;GUICtrlSetLimit($progress, 100, 0) ;GUICtrlSetData($progress, 90) ;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) ;Slider $slider = GUICtrlCreateSlider(83, 115, 100, 30, -1) GUICtrlSetLimit($slider, 100, 0) GuiCtrlSetData($slider, 100) GUISetState() While 1 $msg = GUIGetMsg() Select Case $msg = $open $file = FileOpenDialog("Add selected file", "", "Sound files (*.mp3)", 1) If @error = 0 Then SoundPlay($file, 0) Case $msg = $play If Not $file = "" Then SoundPlay($file, 0) Else MsgBox(64, "Error", "Please open file") EndIf Case $msg = $slider $Read_slider = GUICtrlRead($slider) SoundSetWaveVolume($Read_slider) Case $msg = $Gui_Event_Close ExitLoop Case $msg = $quit Exit Case $msg = $playlist $list = FileOpenDialog("Add playlist", "", "Playlist (*.m3u)", 1) $mp3_list = FileOpen($list, 0) Prepare($mp3_list) FileClose($mp3_list) EndSelect WEnd Func Prepare($list) While 1 $music = FileReadLine($mp3_list) If @error <> 0 Then ExitLoop Play($music) WEnd EndFunc Func Play($music) SoundPlay($music, 0) EndFunc \\ws10\d\Music\Scorpions\Scorpions - Destin.mp3 \\ws10\d\Music\Scorpions\SCORPIONS - EYE TO EYE.mp3 \\ws10\d\Music\Scorpions\Scorpions - Holiday.mp3 |
Последний раз редактировалось Sanja Alone, 08-08-2007 в 10:31. Причина: Вложенный тэг code Отправлено: 11:24, 30-07-2007 | #212 |
Googler Сообщения: 3665
|
Профиль | Отправить PM | Цитировать Creat0R
Цитата:
чуть позже выложу CallBack-функцию для "нового стиля" с ограничением типов выбираемых объектов. #include <GUIConstants.au3> #include <DllCallBack.au3> ; Сообщения, формируемые диалогом выбора Global Const $BFFM_INITIALIZED = 1 ; Инициализация диалога завершена Global Const $BFFM_SELCHANGED = 2 ; Выбор пользователем нового каталога Global Const $BFFM_VALIDATEFAILEDA = 3 ; ANSI: в окно редактирования введен некорректный текст Global Const $BFFM_VALIDATEFAILEDW = 4 ; WideChar: в окно редактирования введен некорректный текст ; Сообщения, принимаемые диалогом выбора Global Const $BFFM_ENABLEOK = $WM_USER + 101 ; Включить/выключить кнопку "Ok" Global Const $BFFM_SETOKTEXT = $WM_USER + 105 ; Задать текст кнопки "Ok" Global Const $BFFM_SETEXPANDED = $WM_USER + 106 ; Раскрыть в дереве определенную папку Global Const $BFFM_SETSTATUSTEXTA = $WM_USER + 100 ; ANSI: задать текст статусной строки Global Const $BFFM_SETSTATUSTEXTW = $WM_USER + 104 ; WideChar: задать текст статусной строки Global Const $BFFM_SETSELECTIONA = $WM_USER + 102 ; ANSI: переместить курсор к определенному каталогу в дереве Global Const $BFFM_SETSELECTIONW = $WM_USER + 103 ; WideChar: переместить курсор к определенному каталогу в дереве Global Const $BIF_NEWDIALOGSTYLE = 0x40 ; Вывести диалоговое окно "нового стиля" (IE 5.0) ; Флаги, применимые только для диалога в "старом стиле" (флаг $BIF_NEWDIALOGSTYLE сброшен) Global Const $BIF_RETURNONLYFSDIRS = 0x1 ; Выбирать только объекты файловой системы Global Const $BIF_STATUSTEXT = 0x4 ; Отображение дополнительного текстовое поля Global Const $BIF_BROWSEFORCOMPUTER = 0x1000 ; Выбирать только компьютеры в сетевом окружении Global Const $BIF_BROWSEFORPRINTER = 0x2000 ; Выбирать только принтеры в сетевом окружении ; Флаги, применимые только для диалога в "новом стиле" (флаг $BIF_NEWDIALOGSTYLE установлен) Global Const $BIF_UAHINT = 0x100 ; Показывать текст "подсказки", недействителен для флага $BIF_EDITBOX (IE 6.0) Global Const $BIF_NONEWFOLDERBUTTON = 0x200 ; Не отображать кнопку создания нового каталога (IE 6.0) Global Const $BIF_SHAREABLE = 0x8000 ; Отображать специфические сетевые ресурсы: диски, принтеры, задания, etc. (IE 5.0) ; Флаги, примененимые к обоим стилям диалога Global Const $BIF_DONTGOBELOWDOMAIN = 0x2 ; Не открывать домены в сетевом окружении Global Const $BIF_BROWSEINCLUDEFILES = 0x4000 ; Позволить выбирать файлы (IE 5.0) Global Const $BIF_EDITBOX = 0x10 ; Включить строку редактирования (IE 4.71) Global Const $BIF_VALIDATE = 0x20 ; Посылать сообщение о наборе недопустимого имени (IE 4.71) ; Маска допустимых флагов для диалога "старого стиля" Global Const $FSF_ALLOLDSTYLEFLAGS = BitOR ( _ $BIF_DONTGOBELOWDOMAIN, $BIF_BROWSEINCLUDEFILES, $BIF_EDITBOX, $BIF_VALIDATE, _ $BIF_BROWSEFORCOMPUTER, $BIF_BROWSEFORPRINTER, $BIF_RETURNONLYFSDIRS, $BIF_STATUSTEXT) ; Маска допустимых флагов для диалога "нового стиля" Global Const $FSF_ALLNEWSTYLEFLAGS = BitOR ( $BIF_NEWDIALOGSTYLE, _ $BIF_DONTGOBELOWDOMAIN, $BIF_BROWSEINCLUDEFILES, $BIF_EDITBOX, $BIF_VALIDATE, _ $BIF_NONEWFOLDERBUTTON, $BIF_UAHINT, $BIF_SHAREABLE) ; $sText - текст приглашения; ; $iRoot - код корневого каталога (0 - "рабочий стол"); ; $iFlags - набор флагов; ; $sIniDir - стартовый каталог; ; $hWnd - хэндл родительского окна; ; $sCallbackProc - имя CallBack-процедуры (или пустая строка) Func _FileSelectFolder ($sText = '', $iRoot = 0, $iFlags = 0, $sIniDir = @ScriptDir, $hWnd = 0, $sCallbackProc = '_FileSFCallbackProc') Local $ret, $pidl, $res='', $pCallbackProc=0, $iMask = $FSF_ALLOLDSTYLEFLAGS ; Контроль входных параметров If $sIniDir<>'' Then $sIniDir = StringRegExpReplace($sIniDir, '([^\\])\\*$', '\1\\') If StringRight($sIniDir, 2)=':\' Then $sIniDir &= '\' If BitAND($iFlags, $BIF_NEWDIALOGSTYLE) Then $iMask = $FSF_ALLNEWSTYLEFLAGS ; Создание и инициализация основных структур данных Local $uBI = DllStructCreate ("hwnd;ptr;ptr;ptr;int;ptr;ptr;int") ; BROWSEINFO Local $uTX = DllStructCreate ("char[260];char") ; текст приглашения Local $uMP = DllStructCreate ("char[260]") ; путь/имя выбранного объекта Local $uCB = DllStructCreate ("char[260];int") ; CallBack структура DllStructSetData ($uTX, 1, $sText) DllStructSetData ($uCB, 1, $sIniDir) DllStructSetData ($uCB, 2, $iFlags) ; Заполнение структуры BROWSEINFO DllStructSetData ($uBI, 1, $hwnd) DllStructSetData ($uBI, 3, DllStructGetPtr($uMP)) DllStructSetData ($uBI, 4, DllStructGetPtr($uTX)) DllStructSetData ($uBI, 5, BitAND($iFlags, $iMask)) DllStructSetData ($uBI, 7, DllStructGetPtr($uCB)) ; Получение указателя на корневую папку (PIDL) DllCall ("shell32.dll", "ptr", "SHGetSpecialFolderLocation", "int", 0 , "int", $iRoot , "ptr", DllStructGetPtr($uBI, 2)) ; Получение указателя на CallBack-функцию If $sCallbackProc<>'' Then DllStructSetData ($uBI, 6, _DllCallBack($sCallbackProc,'hwnd;uint;long;ptr')) ; Запуск системного диалога и обработка полученного указателя (PIDL) $pidl = DllCall ("shell32.dll", "ptr", "SHBrowseForFolder", "ptr", DllStructGetPtr($uBI)) If IsArray($pidl) Then $res = DllStructGetData ($uMP, 1) ; сохраняем имя объекта If $pidl[0] Then $ret = DllCall ("shell32.dll", "int", "SHGetPathFromIDList", "ptr", $pidl[0], "ptr", DllStructGetPtr($uMP)) If IsArray($ret) Then If $ret[0] Then $res = DllStructGetData ($uMP, 1) ; сохраняем путь объекта DllCall ("ole32.dll", "int", "CoTaskMemFree", "ptr", $pidl[0]) ; чистим за собой EndIf EndIf EndIf If $pCallbackProc Then _DllCallBack_Free ($pCallbackProc) ; закрытие указателя DllCall ("ole32.dll", "int", "CoTaskMemFree", "ptr", DllStructGetData ($uBI, 2)) ; чистим за собой Return $res EndFunc ;==> _FileSelectFolder ; Функция обратного вызова для _FileSelectFolder по умолчанию Func _FileSFCallbackProc ($hWnd, $iMsg, $wParam, $lParam) Local $uTB = DllStructCreate("char[260];ptr"), $uCB = DllStructCreate ("char[260];int", $lParam) Local Const $flg = BitOr($BIF_NEWDIALOGSTYLE, $BIF_RETURNONLYFSDIRS) Local $ret, $tst = BitXOR(BitAnd(DllStructGetData($uCB,2), $flg), $flg) Switch $iMsg Case $BFFM_INITIALIZED DllCall ("user32.dll","int","SendMessage", "hwnd", $hWnd, "int", $BFFM_SETSELECTIONA, "int", 1, "ptr", DllStructGetPtr($uCB,1)) $ret = DllCall ("shell32.dll", "int", "SHParseDisplayName", _ "wstr", DllStructGetData($uCB,1), "ptr", 0, "ptr", DllStructGetPtr($uTB,2), "int", 0, "ptr", 0) If IsArray($ret) Then If $ret[0]=0 Then _FileSFCallbackProc($hWnd, $BFFM_SELCHANGED, DllStructGetData($uTB,2), $lParam) DllCall ("ole32.dll", "int", "CoTaskMemFree", "ptr", DllStructGetData($uTB,2)) ; чистим за собой EndIf EndIf Case $BFFM_SELCHANGED If $tst=0 Then $ret = DllCall("shell32.dll", "int", "SHGetPathFromIDList", "ptr", $wParam, "ptr", DllStructGetPtr($uTB,1)) If IsArray($ret) Then If $ret[0] Then DllCall("user32.dll","int","SendMessage","hwnd",$hWnd,"int",$BFFM_ENABLEOK,"int",0,"ptr",1) Else DllCall("user32.dll","int","SendMessage","hwnd",$hWnd,"int",$BFFM_ENABLEOK,"int",0,"ptr",0) EndIf EndIf EndIf EndSwitch EndFunc ;==> __FileSFCallbackProc |
|
Последний раз редактировалось amel27, 06-08-2007 в 07:29. Причина: оптимизация Отправлено: 11:47, 30-07-2007 | #213 |
Новый участник Сообщения: 2
|
Профиль | Отправить PM | Цитировать Как можно с помощью AutoIt3 использовать обычный Twain сканнер?
|
Отправлено: 22:27, 30-07-2007 | #214 |
Must AutoIt Сообщения: 3054
|
Профиль | Сайт | Отправить PM | Цитировать Maza Faka
Цитата:
#include <GUIConstants.au3> #include <GuiListView.au3> #include <Array.au3> GUICreate("Player", 300, 200, -1, -1, -1) GUISetIcon(@ProgramFilesDir & "\Winamp\winamp.exe", 0) $Playlist = GUICtrlCreateListView("File Name|Path", 20, 50, 260, 120) $Play = GUICtrlCreateButton("Play", 20, 10, 60) $Open = GUICtrlCreateButton("Open", 110, 10, 60) GUISetState() While 1 $msg = GUIGetMsg() Select Case $msg = $Open $OpenFile = FileOpenDialog("Add selected file", "", "Sound files (*.mp3;*.m3u)", 1) If @error Then ContinueLoop Local $FilesArray[2] = [1, $OpenFile] If StringRight($OpenFile, 3) = "m3u" Then $FilesArray = _M3uToArray($OpenFile) For $i = 1 To UBound($FilesArray)-1 $FileName = StringRegExpReplace($FilesArray[$i], "^.*\\", "") GUICtrlCreateListViewItem($FileName & "|" & $FilesArray[$i], $PlayList) Next Case $msg = $Play $Selected = _GUICtrlListViewGetItemText($PlayList, -1, 1) If $Selected <> "" Then SoundPlay($Selected, 0) Else MsgBox(64, "Error", "Please select file") EndIf Case $msg = $GUI_EVENT_CLOSE Exit EndSelect WEnd Func _M3uToArray($M3uPath) If StringRight($M3uPath, 4) <> ".m3u" Or Not FileExists($M3uPath) Then Return -1 Local $OpenM3u = FileOpen($M3uPath, 0), $M3uArr[1] While 1 $CurrentLine = FileReadLine($OpenM3u) If @error = -1 Then ExitLoop If StringLeft($CurrentLine, 4) <> "#EXT" Then _ArrayAdd($M3uArr, $CurrentLine) WEnd FileClose($OpenM3u) $M3uArr[0] = UBound($M3uArr) - 1 Return $M3uArr EndFunc Чтобы после проигрывания одного трека начал проигрываться другой, нужно использовать библиотеку Sound.au3, там есть функции для определения статуса текущей песни, перемотка песни, ну и в принцепе все основные функции требуемые для примитивного плеера amel27 Цитата:
geka6pucT Цитата:
|
|||
------- Последний раз редактировалось Creat0R, 31-07-2007 в 04:43. Причина: Добавление P.S ;) Отправлено: 04:04, 31-07-2007 | #215 |
Must AutoIt Сообщения: 3054
|
Профиль | Сайт | Отправить PM | Цитировать amel27
Есть ещё проблема с функцией _FileOpenDialog() - Если использовать флаг 4 (возможность выделения более одного файла), то функция возвращает очень много символов | и иногда между ними проскакивают разные цифры... Это лечится? |
------- Отправлено: 04:39, 31-07-2007 | #216 |
Ветеран Сообщения: 628
|
Профиль | Отправить PM | Цитировать Товарищи, подскажите кто знает формат командной строки утилиты Exe2aut.exe кот. идет в комплекте с дистрибутивом?
В старых версиях было Exe2aut.exe /in файлю.exe /out файл.au3 . Видимо формат сменился или от комстроки совсем отказались. |
Отправлено: 07:36, 31-07-2007 | #217 |
Must AutoIt Сообщения: 3054
|
Профиль | Сайт | Отправить PM | Цитировать EgOrus,
Цитата:
В 3.2.5.0 её вернули как я понял. |
|
------- Отправлено: 08:15, 31-07-2007 | #218 |
Googler Сообщения: 3665
|
Профиль | Отправить PM | Цитировать Creat0R
Цитата:
|
|
Отправлено: 13:03, 31-07-2007 | #219 |
Ветеран Сообщения: 628
|
Профиль | Отправить PM | Цитировать Creat0R
благодарю, бэтку даже и не заметил |
Отправлено: 15:02, 31-07-2007 | #220 |
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Открывая 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 |
|