|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » [Архив - Часть 3] AutoIt скрипты .:[общие вопросы]:. |
|
[Архив - Часть 3] AutoIt скрипты .:[общие вопросы]:.
|
(*.*) Сообщения: 36560 |
Внимание! В связи с созданием отдельного форума по AutoIt, эта тема переводится в архивное состояние. Если у вас есть вопрос, создайте новую тему или поднимите существующую, если в ней обсуждается аналогичная проблема. Пожалуйста, не создавайте тем с названием "Помогите!" или "Нужна помощь по AutoIt". Это и так понятно ![]() ![]() Сайт программы Русская справка Коллекция AutoIt скриптов от Sanja Alone Коллекция AutoIt скриптов от MSFN (могут быть устаревшие). Справочник по командам rundll32 (команды запуска диалоговых окон и не только...) AutoIt скрипты - введение и FAQ (статья содержит вводную информацию по AutoIt, а также ответы на ЧаВо). Архивы старых тем по AutoIt или они же в 7z архиве (версии для печати) - 846 кб (настоятельно рекомендуется к прочтению/поиску) (он же прикреплен в шапке) Данная тема предназначена для общих вопросов по AutoIt. Вопросы по установке приложений при помощи AutoIt следует задавать в соответствии с правилами форума "Автоматическая установка приложений". Таким образом, если вы хотите узнать как установить Winamp 5.x при помощи AutoIt, то создайте тему [autoit] Winamp 5.х (если таковой еще нет на форуме). Проверить наличие тем можно при помощи поиска или фильтров. Цитата Vadikan:
|
||
------- Отправлено: 00:02, 05-02-2006 |
Ветеран Сообщения: 825
|
Профиль | Отправить PM | Цитировать Creat0R, А что ты будешь делать при изменении версии AutoIt - вернее при добавлении в него новых конструкций. Я так думаю что щас этот геморой лежит на SciTE. А ты похоже хочешь его на себя переложить. Что это даст? Извини если я не въехал?
|
Отправлено: 17:10, 11-10-2008 | #991 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Must AutoIt Сообщения: 3054
|
Профиль | Сайт | Отправить PM | Цитировать NikLok,
Цитата NikLok:
![]() |
|
------- Отправлено: 18:11, 11-10-2008 | #992 |
![]() Старожил Сообщения: 398
|
Профиль | Сайт | Отправить PM | Цитировать Люди помогите. Как зделать так чтобы после нажатия левой клавиши мыши скрипт запускал определённую функцию?
что бы было чтото типо "HotKeySet()" |
------- Отправлено: 13:06, 12-10-2008 | #993 |
Must AutoIt Сообщения: 3054
|
Профиль | Сайт | Отправить PM | Цитировать Цитата morgan1991:
#include <Misc.au3> While 1 If _IsPressed("01") Then MyFunc() Sleep(10) WEnd Func MyFunc() EndFunc #include <MouseSetOnEvent_UDF.au3> ;Disable Primary mouse button *down*, and call our function when mouse button *down* event is recieved _MouseSetOnEvent($MOUSE_PRIMARYDOWN_EVENT, "MousePrimaryDown_Event") Sleep(5000) _MouseSetOnEvent($MOUSE_PRIMARYDOWN_EVENT) ;Enable mouse button back. MsgBox(64, "Attention!", "Now we disable Secondary mouse button up, and call our function when mouse button up event is recieved.", 5) ;Disable Secondary mouse button *up*, and call our function when mouse button *up* event is recieved _MouseSetOnEvent($MOUSE_SECONDARYUP_EVENT, "MouseSecondaryUp_Event") Sleep(5000) _MouseSetOnEvent($MOUSE_SECONDARYUP_EVENT) ;Enable mouse button back. Func MousePrimaryDown_Event() ConsoleWrite("Primary Mouse Down" & @LF) EndFunc Func MouseSecondaryUp_Event() ConsoleWrite("Secondar Mouse Up" & @LF) EndFunc |
|
------- Отправлено: 13:41, 12-10-2008 | #994 |
![]() Старожил Сообщения: 398
|
Профиль | Сайт | Отправить PM | Цитировать Creat0R, спс!
|
------- Последний раз редактировалось morgan1991, 13-10-2008 в 21:43. Отправлено: 13:43, 12-10-2008 | #995 |
Googler Сообщения: 3665
|
Профиль | Отправить PM | Цитировать Creat0R
Цитата:
Цитата:
![]() Цитата:
|
|||
Отправлено: 05:35, 13-10-2008 | #996 |
Must AutoIt Сообщения: 3054
|
Профиль | Сайт | Отправить PM | Цитировать amel27,
Цитата amel27:
![]() Цитата amel27:
Цитата amel27:
![]() |
|||
------- Отправлено: 10:27, 13-10-2008 | #997 |
Пользователь Сообщения: 141
|
Профиль | Отправить PM | Цитировать Почему это неработает?
$var = IniReadSection("\\"&$sCompName&"\C\FILES\PDFTransformer.ini", "USERINFO") получается вполне нормальный путь если отправлять ето в месадж. но инирид невидит файл |
Отправлено: 10:31, 15-10-2008 | #998 |
Ветеран Сообщения: 604
|
Профиль | Отправить PM | Цитировать Цитата mikola1983:
|
|
------- Отправлено: 12:10, 15-10-2008 | #999 |
Googler Сообщения: 3665
|
Профиль | Отправить PM | Цитировать Creat0R
Цитата:
![]() про скорость еще рано говорить, про файлы тоже... "независимость" и вовсе штука относительная, особенно в мире программ ![]() Цитата:
Как вариант - восстановить список используемых UDF из самого скрипта. Это позволит строить схемы раскраски, используя: - имя UDF (это просто); - имя загружаемого файла, в котором определен UDF (обычно синхронен с именем UDF, хотя и не всегда); - тип загружаемого файла (системный, пользовательский, другой)... имхо самая полезная фича. Примеры UDF, с помощью которых можно это реализовать: #include <array.au3> Global $v[1] _AU3_GetAllLibUDF (FileRead(@ScriptFullPath), $v) For $i=1 To $v[0][0] ConsoleWrite($v[$i][0] &":"& $v[$i][1] &@CRLF) $a = $v[$i][2] If IsArray($a) Then For $j=0 To UBound($a)-1 ConsoleWrite(@TAB& $a[$j] &@CRLF) Next EndIf Next ; =============================================================== ; _AU3_GetAllLibUDF($text, $var) ; --------------------------------------------------------------- ; Возвращает массив всех загруженных UDF и библиотечных файлов ; Использован AutoIT v3.2.12.0 ; ; $text : текст AutoIT-скрипта ; $var : ссылка на переменную для выходного массива, ; по выходу содержит двумерный массив: ; $var[0][0] - количество элементов в массиве ; $var[$i][0] - тип библиотечного файла ; $var[$i][1] - имя библиотечного файла (без пути) ; $var[$i][2] - массив UDF, определенных в файле ; ; Функция рекурсивная, поэтому выход по ошибке не предусмотрен ; =============================================================== Func _AU3_GetAllLibUDF($text, ByRef $var) Local Const $rFile = '(?i)(?:^|[\n\r])[ \t]*#include[ \t]+((?:\<|")[^\n\r\"\>]+(?:\>|"))' Local Const $rUDFs = '(?i)(?:^|[\n\r])[ \t]*Func[ \t]+([\w\d]+)' ; Инициализация массива при первом входе / сохранение списка UDF If UBound($var,2)<>3 Then Dim $var[2][3] = [[1,0,0],[0,"",0]] $var[$var[0][0]][2] = StringRegExp($text, $rUDFs, 3) ; Инициализация переменных / Получение списка библиотечных файлов Local $sPath, $iType, $sName, $sText Local $aFile=StringRegExp($text, $rFile, 3) ; Пофайловая обработка списка библиотек If IsArray($aFile) Then For $i=0 To UBound($aFile)-1 $sPath = _AU3_LibIncToPath($aFile[$i]) ; полное имя файла If @error Then ContinueLoop ; файл не найден $iType = @extended ; тип библиотеки $sName = StringRegExpReplace($sPath, "(?:[^\\]+\\)+", "") ; краткое имя файла ; Исключение повторной обработки / Чтение файла For $j=1 To $var[0][0] If $var[$j][0]==$iType And $var[$j][1]==$sName Then ContinueLoop 2 Next $sText = FileRead($sPath) If @error Then ContinueLoop ; При успешном чтении добавляем файл в выходной массив $var[0][0] +=1 ReDim $var[$var[0][0]+1][3] $var[$var[0][0]][0] = $iType $var[$var[0][0]][1] = $sName ; Рекурсивный вызов на обработку текста библиотеки _AU3_GetAllLibUDF($sText, $var) Next EndIf EndFunc ; ==> _AU3_GetAllLibUDF ; =============================================================== ; _AU3_LibIncToPath($sInclude) ; --------------------------------------------------------------- ; Возвращает полный путь к библиотечному файлу по строке агрузки ; Использован AutoIT v3.2.12.0 ; ; $sInclude : строка загрузки в формате #include, примеры: ; '<array.au3>' ; '"array.au3"' ; '"c:\Program Files\AutoIT3\Include\array.au3"' ; ; При успехе : возвращает полное имя файла, содержащее путь, ; макрос @extended указывает на тип библиотеки: ; 1 - системная библиотека (каталог установки) ; 2 - текущая библиотека (каталог скрипта) ; 3 - пользовательская библиотека (путь из реестра) ; 4 - путь к библиотеке явно указан при загрузке ; ; При неудаче : возвращает пустую строку и устанавливает @error: ; 1 - ошибка формата строки ; 2 - файл не найден ; =============================================================== Func _AU3_LibIncToPath($sInclude) Local $aRegExp = StringRegExp($sInclude, '^(<|")([^>"]+)(?:>|")$', 3) ; Проверка на корректность формата строки If Not(IsArray($aRegExp)) Then Return SetError(1, 0, "") $sInclude = $aRegExp[1] If StringInStr($sInclude, "\") =0 Then Local $sSYS, $sUDL, $aUDL, $sAU3 = @ScriptDir &"\"& $sInclude ; Определение каталога системных библиотек $sSYS = StringRegExpReplace(@AutoItExe, "\\[^\\]+$", "") $sSYS &= "\Include\"& $sInclude ; Чтение списка каталогов пользовательских библиотек $sUDL = RegRead("HKCU\Software\AutoIt v3\AutoIt", "Include") $aUDL = StringRegExp($sUDL, "([^;]+)(?:;|$)", 3) ; Проверка типов 1 и 2 (до пользовательских библиотек) If $aRegExp[0]=='<' Then If FileExists($sSYS) Then Return SetError(0, 1, $sSYS) ElseIf $aRegExp[0]=='"' Then If FileExists($sAU3) Then Return SetError(0, 2, $sAU3) EndIf ; Проверка типа 3 (поиск среди пользовательских библиотек) If IsArray($aUDL) Then For $i=0 To UBound($aUDL)-1 $aUDL[$i] &= "\"& $sInclude If FileExists($aUDL[$i]) Then Return SetError(0,3,$aUDL[$i]) Next EndIf ; Проверка типов 1 и 2 (после пользовательских библиотек) If $aRegExp[0]=='<' Then If FileExists($sAU3) Then Return SetError(0, 2, $sAU3) ElseIf $aRegExp[0]=='"' Then If FileExists($sSYS) Then Return SetError(0, 1, $sSYS) EndIf Else ; Проверка типа 4 (файл с указанием полного пути) If FileExists($sInclude) Then Return SetError(0, 4, $sInclude) EndIf ; ОШИБКА: файл не найден Return SetError(2, 0, "") EndFunc ; ==> _AU3_LibIncToPath |
||
Отправлено: 08:38, 16-10-2008 | #1000 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
[архив - Часть 2] AutoIt скрипты | Vadikan | AutoIt | 985 | 21-01-2008 09:58 | |
Вопрос - [Архив] Антивирусные программы - ОБЩИЕ ВОПРОСЫ | FOX RED | Защита компьютерных систем | 67 | 21-11-2007 15:05 | |
[Архив - Часть 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 |
|