Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Программы » AutoIT (Часть 1)

Модерирует : gyra, Maz

Widok (12-01-2009 14:47): лимит страниц. продолжаем здесь  Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138

   

AddXL

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

AutoIt3

 
Домашняя страница: http://www.autoitscript.com
Страница загрузки: http://www.autoitscript.com/autoit3/downloads.php
 
Описание:

Цитата:
AutoIt v3 - это язык для написания сценариев, напоминающий BASIC. Основным его назначением является автоматизация работ с Windows GUI (графическим интерфейсом пользователя MS Windows). Для выполнения этой сложной задачи предоставляется комбинация испытанных методов, включающих в себя - симуляцию нажатий комбинаций клавиш клавиатуры, перемещения указателя мыши и управления окнами и его визуальными элементами. Как показывает практика, эти "приводные ремни" весьма эффективны для получения работающих решений в ситуациях, когда другие стандартные средства (например, VBScript и SendKeys) оказываются бессильны.
Умеет он очень и очень многое! Бесплатный.

 
Помощь по AutoIT:
  • Справку на русском (и не только) вы всегда(?) сможете найти тут
  • Справочник по командам rundll32
  • Русский справочник по API-функциям
  • Помощь по Регулярным выражениям
  • AutoIt v3: Your Quick Guide (652 КБ) - Ваш быстрый гид в мир AutoIt-а (книга в формате pdf)
     
    Инструметы для AutoIt:
  • AutoIt3Wrapper [Страница закачки] - Программа для компилляции скрипта с дополнительными возможностями (добавление иконки, описании и т.п).
  • Koda (724 Kb) - Визуализация работы с GUI - аналог Visual Basic.
  • CodeWizard (400 Kb) - нечто простенькое на вариант Koda.
  • AutoItMacroGenerator (34 Kb) - Записывает в реальном времени действия пользователя в AutoIt код.
  • ScriptWriter (78 Kb) - Аналог AutoItMacroGenerator.
  • API Constants (1042 Kb) - Утилита для просмотра всех констант API-Функции и не только.
  • Страница закачки утилит которые идут в отдельной поставке редактора SciTE.
  • AutoIt меню для браузера Opera
     
    Готовые скрипты и программы с открытым кодом на AutoIt:
  • Коллекция AutoIt скриптов от Sanja Alone
  • Коллекция скриптов на http://msfn.org
  • Пополняющийся со временем сайт с полезными утилитами и функциями на AutoIt
  • Desktop Icons Restorator - Скрипт-Программа для сохранения/восстановления позиции иконок р.стола.
  • CaptureIt - Утилита предназначена для захвата изображений с вашего экрана.
  • SwitchIt - Скрипт для конвертирования выделенного текста
  • Скрипт расскраски кода AutoIt для публикации в форумах
     
    Общие вопросы и решения на Autoit:
  • Обработчик скриптов добавляющий отладчик (debugger)
  • Интеракция между несколькими скриптами
  • Пример использование интеракции между скриптами - Добавление элементов GUI с внешнего модуля
  • Копирование большого файла с отображением данных прогресса
  • Создание динамического меню в Tray Icon (значёк в области уведомления)
  • Пример создания своего мастера (Wizard)
  • Метод позволяющий запускать код VBS не создавая временных файлов
  • Описание функции GUIRegisterMsg()
  • Пример перехвата вводимых символов с клавиатуры
  • Пример деактивирования TabItem
  • Пример вывода лога в Edit-поле (с поддержкой форматирования текста)
  • Пример остановки/начало выполнения скрипта + Слежение за б.обмена с заменой неподдерживаемых в имени файла символов
  • Пример использования меню с иконками (ModernMenu.au3) -> Список программ в меню значка в системном трее
     
  • Как по PID процесса вычислить путь запускаемого файла
  • Получение IP по подключенному сокету
     
    Отдельные функции (UDF):
  • Функции Отключения/Подключения к Интернету
  • Функция проверки подключения к Интернету
  • Функция для получения структуры директории включая подкаталоги
  • Функция для поиска в файлах
  • Функция для смены разрешения экрана
  • Функция для смены раскладки клавиатуры в определённом окне
  • Функция для получения списка процессов с допол. инфой (путь к исполняемому файлу и др.)
  • Функции и пример для отображения детального процесса закачки файла
  • Функция (и пример использования) для отображения стильного диалога “О Программе” - [Усовершенствованная версия]
  • Функция возвращает пронумерованный список всех классов определённого окна + функция получения хендлов для этих классов
  • Функция для получения заголовка окна (или его идентификатора) по ID процесса (PID)
  • Функция _StringIsUTF8Format() + _StringToUTF() - Первая проверяет если строка содержится в UTF-8 формате, вторая преобразовывает строку в UTF-8 формат
  • Функция _FileOpenDialogEx - Возвращает массив (или строку) с полными путями к выбранным файлам
  • _AU3_Lib* Функции - Предназначены для обработки подключаемых библиотек через #include
  • Функция транслитерации строки
  • Расширенная библиотека для работы с реестром
     
    За шапкой следит ViSiToR  

  • Всего записей: 6 | Зарегистр. 24-11-2005 | Отправлено: 13:20 24-11-2005 | Исправлено: Maz, 11:50 17-04-2017
    Partner1



    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    А можно ли запретить выгрузку скрипта (скомпилированного). И вообще скрыть его (сервис ???) .

    Всего записей: 277 | Зарегистр. 28-11-2007 | Отправлено: 13:54 10-12-2008
    SNAKE92

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Спасибо еще раз за то что дал ссылку на такую нужную библиотеку, а то бы я наверное неделю искал потому что с английским плохо дружу)))

    Всего записей: 7 | Зарегистр. 07-12-2008 | Отправлено: 19:58 10-12-2008
    Maza_Faka



    Advanced Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    Partner1

    Цитата:
    можно ли запретить выгрузку скрипта

    Можно запустить скрипт, как сервис, предварительно сконфигурировав действия компьютера при сбое службы. Скажем два сбоя (выгрузка скрипта) - перезапуск службы, третий сбой - перезагрузка компьютера.
     

    Цитата:
    И вообще скрыть его

    Не скажу, что невозможно, но очень нелегко.

    Всего записей: 1420 | Зарегистр. 25-10-2006 | Отправлено: 06:30 11-12-2008
    Partner1



    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Maza_Faka

    Цитата:
    запустить скрипт, как сервиc

    Нашел на офф. форуме:
    http://www.autoitscript.com/forum/index.php?showtopic=80201&hl=service
    Но без пол-литра не разобраться

    Всего записей: 277 | Зарегистр. 28-11-2007 | Отправлено: 07:27 11-12-2008
    Maza_Faka



    Advanced Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    Partner1
    Простой и надёжный способ:

    Код:
     
    SC.EXE CREATE
     

    Для информации смотрим справку c:\WINDOWS\Help\ntcmds.chm

    Всего записей: 1420 | Зарегистр. 25-10-2006 | Отправлено: 08:13 11-12-2008
    Partner1



    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Maza_Faka
    Спасибо! Все гениальное просто

    Всего записей: 277 | Зарегистр. 28-11-2007 | Отправлено: 08:44 11-12-2008
    NORIO



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Можно ли с помощью for in обработать двумерный массив?
    Нужно перечисление только первого измерения, а второе известно и не меняется поэтому указано прямо.

    Всего записей: 875 | Зарегистр. 18-12-2004 | Отправлено: 15:34 12-12-2008 | Исправлено: NORIO, 15:40 12-12-2008
    dzeday

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    День добрый.
    Натолкните на мысль. Есть форма, необходимо:
    Запускается форма, на форме есть кнопка. Если небыло нажатия кнопки, то форма ждет 30 сек и закрывается. Жду совета.

    Всего записей: 16 | Зарегистр. 16-08-2007 | Отправлено: 17:46 12-12-2008
    ViSiToR



    Silver Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    NORIO 15:34 12-12-2008
    Цитата:
    Нужно перечисление только первого измерения

    А почему именно с For...In? Можно и обычно:
     

    Код:
    Dim $aArray[4][2] = [["Paul", 1], ["Jim", 2], ["Richard", 3], ["Louis", 4]]
     
    For $i = 0 To UBound($aArray, 1)-1
        ConsoleWrite($aArray[$i][0] & ":" & $aArray[$i][1] & @CRLF)
    Next

     
    dzeday 17:46 12-12-2008
    Цитата:
    Запускается форма, на форме есть кнопка. Если небыло нажатия кнопки, то форма ждет 30 сек и закрывается

    Я так полагаю под “формой” имеется в виду GUI? Можно так:
     

    Код:
    #include <GuiConstants.au3>
     
    Global $iExpired_Time = 30 * 1000
    Global $iTimer = TimerInit()
     
    ;А можно ещё так (тогда проверку в цикле (после "While 1") убрать).
    ;AdlibEnable("_Terminate_Proc", $iExpired_Time)

     
    $GUI = GUICreate("Test Script", 300, 200)
    $Button = GUICtrlCreateButton("Button", 20, 40, 60, 20)
     
    GUISetState(@SW_SHOW, $GUI)
     
    While 1
        If $iTimer <> -1 And TimerDiff($iTimer) >= $iExpired_Time Then _Terminate_Proc()
     
        Switch GUIGetMsg()
            Case $GUI_EVENT_CLOSE
                Exit
            Case
    $Button
                ;Отменяем таймер (или выполнение функции если испол. второй метод)
                ;$iTimer = -1

                AdlibDisable()
        EndSwitch
    WEnd
     
    Func
    _Terminate_Proc()
        Exit
    EndFunc


    ----------
    ViSiToR a.k.a CreatoR
    CreatoR это не ник, CreatoR это стиль жизни!

    Всего записей: 3251 | Зарегистр. 01-04-2006 | Отправлено: 20:41 12-12-2008
    timsky



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    ViSiToR

    Цитата:
    Функция для получения структуры директории включая подкаталоги

     
    Отличная штука! Только при определенных условиях из-за рекурсии глючит. Выдает что для того чтобы не было переполнения буфера из-за рекурсии Автоит закроется.
    Можно без рекурсии вариант сделать? Дя меня правка такого кода пока что не совсем тривиальная задача

    Всего записей: 2287 | Зарегистр. 08-06-2004 | Отправлено: 04:03 13-12-2008
    ViSiToR



    Silver Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    timsky 04:03 13-12-2008
    Цитата:
    Можно без рекурсии вариант сделать?

    С циклами (оно вроде медленнее):
     

    Код:
    #include <Array.au3>
     
    $aFilesList = _FileListToArrayEx(@SystemDir & "\Config", "*", 1)
    _ArrayDisplay($aFilesList)
     
    Func _FileListToArrayEx($sPath, $sMask="*", $iMode=-1) ;$iMode > 0 только папки (маска игнорируется), иначе папки + файлы
        If Not StringInStr(FileGetAttrib($sPath & "\"), "D") Then Return SetError(1, 0, 0)
     
        Local $aPathesArr[1000000] = [1, $sPath]
        Local $hSearch, $sFindNext, $sFilePath, $iPathIsFolder, $i = 0
        Local $sRegExpFilter = StringReplace(StringReplace($sMask, ".", "\."), "*", ".*")
     
        While $i < $aPathesArr[0]
            $i += 1
     
            $hSearch = FileFindFirstFile($aPathesArr[$i] & "\*")
            If $hSearch = -1 Then ContinueLoop
     
            While
    1
                $sFindNext = FileFindNextFile($hSearch)
                If @error Then ExitLoop
     
                $sFilePath = $aPathesArr[$i] & "\" & $sFindNext
                $iPathIsFolder
    = StringInStr(FileGetAttrib($sFilePath & "\"), "D")
     
                If $iMode <= 0 Or ($iMode > 0 And $iPathIsFolder) Then
                    If
    $iPathIsFolder Or (Not $iPathIsFolder And StringRegExp($sFindNext, "(?i)" & $sRegExpFilter)) Then
                        $aPathesArr[0] += 1
                        $aPathesArr[$aPathesArr[0]] = $sFilePath
                    EndIf
                EndIf
            WEnd
     
            FileClose($hSearch)
        Wend
     
        ReDim $aPathesArr[$aPathesArr[0]+1]
        Return $aPathesArr
    EndFunc

     
    P.S
    Кстати, ReDim очень и очень не рекоммендуемая штука в циклах, замедляет работу в несколько раз. По возможности лучше использовать строки с разделителями, ну или предварительно объявить массив с крайне большой размерностью, и в конце задать ему нужную размерность (как я это и сделал в скрипте выше), но это не самый надёжный метод.

    ----------
    ViSiToR a.k.a CreatoR
    CreatoR это не ник, CreatoR это стиль жизни!

    Всего записей: 3251 | Зарегистр. 01-04-2006 | Отправлено: 05:08 13-12-2008
    timsky



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    ViSiToR
    Спасибо большое
    У меня эта ф-я глючила после того, как я по скрипту проходился своим "дебагером". Тот самый, который предназначен для отлова ошибок в откомпиленых скриптах... который в TraySetToolTip пишет номер строки, которая начала исполняться.
    Я и не наделся на столь скорый ответ, поэтому доработал его. Теперь можно выделить кусок кода, который не нужно "ТулТипить" специально для подобных случаев строками ;NO DEBUG START и ;NO DEBUG END:

    Код:
    #include <Constants.au3>
     
    AutoItSetOption('TrayAutoPause', 0)
    AutoItSetOption('TrayOnEventMode', 1)
    AutoItSetOption('TrayIconDebug', 1)
    TrayItemSetText($TRAY_ITEM_PAUSE, 'Pause')
    TrayItemSetText($TRAY_ITEM_EXIT, 'Exit')
     
    If $CmdLineRaw = '' Then
        $file = FileOpenDialog('Select file to write debug info', @WorkingDir & '\', 'AutoIt script (*.au3)', 1)
        If @error Then
            MsgBox(16, 'No file chosen...', 'Program will now close.')
            Exit
        EndIf
    Else

        $file = StringReplace($CmdLineRaw, '"', '')
    EndIf
     
    $read = FileOpen($file, 0)
    $name = StringReplace($file, '.au3', '') & '-Debug.au3'
     
    If FileExists($name) Then FileDelete($name)
     
    $new = FileOpen($name, 1)
     
    ;$line = ''
    $i = 1
    While 1
        $line = FileReadLine($read, $i)
        If @error = -1 Then ExitLoop
     
        If
    StringInStr($line, ';NO DEBUG START') Then
            FileWriteLine($new, 'TraySetToolTip("Line: ' & $i & '")')
            FileWriteLine($new, $line)
            $i = $i + 1
            While 1
                $line = FileReadLine($read, $i)
                If StringInStr($line, ';NO DEBUG END') Then
                    FileWriteLine($new, 'TraySetToolTip("Line: ' & $i & '")')
                    FileWriteLine($new, $line)
                    $i = $i + 1
                    ExitLoop
                EndIf

                FileWriteLine($new, $line)
                $i = $i + 1
            WEnd
        EndIf
     
        If Not
    StringInStr($line, ';NO DEBUG END') Then
            FileWriteLine($new, 'TraySetToolTip("Line: ' & $i & '")')
            FileWriteLine($new, $line)
            $i = $i + 1
        EndIf
    WEnd

     
    FileClose($read)
    FileClose($new)

     
    Может его в шапочку? Незаменимая вещь при отлове ошибок скомпиленых скриптов

    Всего записей: 2287 | Зарегистр. 08-06-2004 | Отправлено: 01:02 14-12-2008
    ViSiToR



    Silver Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    timsky 01:02 14-12-2008
    Цитата:
    Незаменимая вещь при отлове ошибок скомпиленых скриптов

    Я если честно не вижу как там ошибки отлавливаются. Только вывод текущей строки обработки?
    Скрипт можно ускорить, например открыть файл и читать через Handle, а запись делать позже, с массива. Сорри не присмотрелся, оно в принципе почти так и делается.
     
    Добавлено:
    Не совсем верно оно добавляет нумирацию строк, например на такой тестовый скрипт:
     

    Код:
    HotKeySet("^{e}", "test")
    HotKeySet("^{q}", "quit")
     
    While 1
        Sleep(1000)
    WEnd
     
    Func
    test()
        ToolTip("test")
        Sleep(3000)
        ToolTip("")
    EndFunc
     
    Func
    quit()
        Exit
    EndFunc

     
    В цикле выдаёт «Line: 5» и «Line: 6» (после Sleep), хотя это строки 9 и 10.

    ----------
    ViSiToR a.k.a CreatoR
    CreatoR это не ник, CreatoR это стиль жизни!

    Всего записей: 3251 | Зарегистр. 01-04-2006 | Отправлено: 01:22 14-12-2008 | Исправлено: ViSiToR, 01:25 14-12-2008
    timsky



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

    Цитата:
    Я если честно не вижу как там ошибки отлавливаются. Только вывод текущей строки обработки?

    Ну да, это я просто так выразился
    Зато хотя бы знаешь, в каком месте затык произошел, т.к. строка -1 в этом деле точно не подсказка
     

    Цитата:
    В цикле выдаёт «Line: 5» и «Line: 6» (после Sleep), хотя это строки 9 и 10.

    Щас проверю глюк.
     
    Добавлено:
    Ну все же правильно.
    Это в коде так выглядит, а если скрипт запустить, то всегда отображается Line: 5, т.к. WEnd отрабатыватся мгновенно. Мне Line: 6 так и не удалось поймать.
     
    Целью является не сколько отображение текущей позиции, сколько определение, на какой строке скрипт выдал ошибку, а здесь уже все будет четко видно. Произошла ошибка - читаем инфу о ней, смотрим Тип в трее и видим строку, где косяк порылся.
    Проверено временем
     
    А то, что
    Цитата:
    В цикле выдаёт «Line: 5» и «Line: 6» (после Sleep), хотя это строки 9 и 10.
    , то это тоже так и должно быть. Править ведь "дебагнутый" скрипт жопа, да и зачем?
    Я делаю так: прохожусь этим "дебагером", компилю и скрипт в этом виде работает, а ошибки правлю в исходном скрипте без ТрейТипов.
    Поэтому я и сделал поддержку параметров ком. строки. Я его в Send To засунул и скармливаю легко и непринужденно ему любой скрипт перед компиляцией.

    Всего записей: 2287 | Зарегистр. 08-06-2004 | Отправлено: 03:44 14-12-2008 | Исправлено: timsky, 04:09 14-12-2008
    Maza_Faka



    Advanced Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    timsky

    Цитата:
    Незаменимая вещь при отлове ошибок скомпиленых скриптов

    Хмм... неплохая идея, но скрипт нужно немного переделать, например функция FileReadLine в разы замедляет работу скрипта, впрочем, как и функция FileWriteLine, потому, как постоянно читают файл с первой строки, соответсвенно при отладке большого кода получим тормоза
    Я бы посоветовал сразу "прочитать" файл в переменную и создать массив со строками, а затем обрабатывать каждый элемент массива.

    Всего записей: 1420 | Зарегистр. 25-10-2006 | Отправлено: 07:09 14-12-2008
    NORIO



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    ViSiToR

    Цитата:
    А почему именно с For...In? Можно и обычно:  
     
     

    Цитата:
    Код:Dim $aArray[4][2] = [["Paul", 1], ["Jim", 2], ["Richard", 3], ["Louis", 4]]  
     
    For $i = 0 To UBound($aArray, 1)-1  
        ConsoleWrite($aArray[$i][0] & ":" & $aArray[$i][1] & @CRLF)  
    Next

     
    Так и сделал. Thanks.

    Всего записей: 875 | Зарегистр. 18-12-2004 | Отправлено: 10:41 14-12-2008
    timsky



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Maza_Faka

    Цитата:
    потому, как постоянно читают файл с первой строки

    Т.е. для чтения строки 10, скрипт сперва читает строки 1-9?
     
    Все мои скрипты отрабатываются мгновенно, поэтому тормозов никогда не замечал, но сейчас попробовал на UDF в 6860 строк - действительно долго.
    Позже поправлю, сейчас не до этого... даже в воскресение

    Всего записей: 2287 | Зарегистр. 08-06-2004 | Отправлено: 14:42 14-12-2008 | Исправлено: timsky, 14:43 14-12-2008
    ViSiToR



    Silver Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    timsky 03:44 14-12-2008
    Цитата:
     если скрипт запустить, то всегда отображается Line: 5

    Я так понял это задумывалось как действующая строка, а не строка в скрипте? Т.е строка с кодом не считая пустых строк
     

    Цитата:
    Произошла ошибка - читаем инфу о ней, смотрим Тип в трее и видим строку, где косяк порылся

    Но если произошла ошибка, скрипт ведь вылетает, и в трее уже ничего не будет, или о какой конкретно ошибке идёт речь? Мне лично, кроме отлова критических ошибок (крах скрипта) отлавливать нечего

    ----------
    ViSiToR a.k.a CreatoR
    CreatoR это не ник, CreatoR это стиль жизни!

    Всего записей: 3251 | Зарегистр. 01-04-2006 | Отправлено: 15:09 14-12-2008
    ruslannxx

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    #include <Constants.au3>  
    #include <Array.au3>  
     
    $ipconfig_all = Run(@ComSpec & " /k ipconfig /all", @SystemDir, @SW_HIDE, $STDERR_CHILD + $STDOUT_CHILD)  
    $sStdOut = ""  
    $sStdErr = ""  
     
    While 1  
        $sStdOut &= StdoutRead($ipconfig_all)  
        If @error Then ExitLoop  
    WEnd  
     
    While 1  
        $sStdErr &= StderrRead($ipconfig_all)  
        If @error Then ExitLoop  
    WEnd  
     
    $sStdOut = StringReplace($sStdOut, @CRLF, "")  
    $sStdOut = StringReplace($sStdOut, @CR & @CR, @CR)  
     
    $aString = StringSplit($sStdOut, @CR)  
     
    ;_ArrayDisplay($aString)
     
    RunWait("blat $aString -server xxx -port xxx -to xxx -f xxx -subject xxx -u xxx -pw xxx", "" , @SW_SHOW)
     
     
    kak pravelino otpraviti masiv na po4tu ??? ( -dinamic IP)

    Всего записей: 1 | Зарегистр. 14-12-2008 | Отправлено: 15:09 14-12-2008 | Исправлено: ruslannxx, 15:11 14-12-2008
    ViSiToR



    Silver Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    Вобщем вот моя версия на этот отладчик:
     

    Код:
    #include <Constants.au3>
     
    Opt('TrayAutoPause', 0)
    Opt('TrayOnEventMode', 1)
    Opt('TrayIconDebug', 1)
     
    TrayItemSetText($TRAY_ITEM_PAUSE, 'Pause')
    TrayItemSetText($TRAY_ITEM_EXIT, 'Exit')
     
    If $CmdLine[0] = 0 Then
        $sIniDir = ""
     
        While 1
            $sScript_File = FileOpenDialog('Select file to write debug info', $sIniDir, 'AutoIt script (*.au3)', 1)
     
            If @error Then
                MsgBox(16, 'Attention', 'No file chosen... Program will now close.')
                Exit
            EndIf
     
            If
    StringRight($sScript_File, 4) = ".au3" Then ExitLoop
     
            MsgBox(48, 'Wrong file chosen...', 'Please select AutoIt v3 Script File.')
            $sIniDir = @WorkingDir
        WEnd
    Else

        $sScript_File = StringRegExpReplace($CmdLineRaw, '\A"+|"+\z', '')
    EndIf
     
    $sDebugScript_File = StringTrimRight($sScript_File, 4) & '-Debug.au3'
     
    $aRead_Script = StringSplit(StringStripCR(FileRead($sScript_File)), @LF)
    $sDebugScript_Content = ""
     
    For $i = 1 To $aRead_Script[0]
        $sCurrent_Line = $aRead_Script[$i]
        $sDebugScript_Content &= 'TraySetToolTip("Line: ' & $i & '")' & @CRLF & $sCurrent_Line & @CRLF
     
        If $sCurrent_Line = ';NO DEBUG START' Then
            For
    $j = $i+1 To $aRead_Script[0]
                $i = $j
     
                $sCurrent_Line
    = $aRead_Script[$j]
                $sDebugScript_Content &= $sCurrent_Line & @CRLF
     
                If $sCurrent_Line = ';NO DEBUG END' Then ExitLoop
            Next
        EndIf
    Next

     
    $hOp_DebugScrpt = FileOpen($sDebugScript_File, 2)
    FileWrite($hOp_DebugScrpt, $sDebugScript_Content)
    FileClose($hOp_DebugScrpt)
     
    If $CmdLine[0] = 0 Then _
        MsgBox(64, 'Done!', _
            StringFormat('Debug parsing process completed seccesefully, new "-Debug" file created:\n\n[%s]', $sDebugScript_File))

     
    Добавлено:
    ruslannxx 15:09 14-12-2008
    Цитата:
    kak pravelino otpraviti masiv na po4tu ?

    Во-первых пользуйся транслитирацией (тут вроде есть виртуальная клавиатура).
     
    По поводу массива, нужно его преобразовать либо в строку через цикл (хотя как я вижу там уже строка есть, перед StringSplit()), либо передавать в том же цикле все элементы. См. справку по разделу массивов.

    ----------
    ViSiToR a.k.a CreatoR
    CreatoR это не ник, CreatoR это стиль жизни!

    Всего записей: 3251 | Зарегистр. 01-04-2006 | Отправлено: 15:39 14-12-2008
       

    Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138

    Компьютерный форум Ru.Board » Компьютеры » Программы » AutoIT (Часть 1)
    Widok (12-01-2009 14:47): лимит страниц. продолжаем здесь


    Реклама на форуме Ru.Board.

    Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
    Modified by Ru.B0ard
    © Ru.B0ard 2000-2024

    BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

    Рейтинг.ru