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

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

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

Widok (01-06-2010 13:08): Лимит страниц. Продолжаем здесь.  Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 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 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166

   

Widok



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

AutoIt3
(Часть 1)

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

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

 
Помощь по AutoIT:
  • Справку на русском (и не только) вы всегда(?) сможете найти тут
  • Учебник по AutoIt для начинающих
  • Видео-руководства на YouTube (англ.)
  • AutoIt v3: Your Quick Guide (652 КБ) - Ваш быстрый гид в мир AutoIt-а (книга в формате pdf) - Та же книжка online.
  • Справочник по командам rundll32
  • Справка WinAPI (Win 32 API по шагам)
  • Русский справочник по API-функциям
  • Полезная информация по WinAPI на русском
  • Помощь по регулярным выражениям
  • Tutorial on DllCall() & DllStructs - Небольшое (пока?) руководство по использованию функции DllCall*()
     
     
    Ресурсы, посвящённые AutoIt
  • AutoIt в Википедии
  • AutoIt Russian Community - Русское сообщество AutoIt
  • Jabber-конференция для обсуждения мелких вопросов касающихся AutoIt
  • Обзор скриптового языка AutoIt (рус.)
  • AutoIt на Yahoo! Groups
  • Раздел в конфиренции OSzone.net, посвящённый AutoIt
  • Пополняющийся со временем сайт с полезными утилитами и функциями на AutoIt
  • Коллекция AutoIt-скриптов от Sanja Alone
  • Коллекция AutoIt-скриптов от MSFN (могут быть устаревшие).
  • Коллекция AutoIt-скриптов от AZJIO
     
     
    !!! Полезные советы и заметки - новичкам и не только
     
     
  • Рекомендации по написанию скриптов
     
     
    Инструменты для AutoIt:
  • AutoIt Path Switcher - Переключение пути к папке 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:
  • Desktop Icons Restorator - Скрипт-программа для сохранения/восстановления позиции значков рабочего стола.
  • CaptureIt - Утилита для захвата изображений с экрана.
  • SwitchIt - Скрипт для конвертирования выделенного текста.
  • Скрипт раскраски кода AutoIt для публикации в форумах
     
    Общие вопросы и решения на Autoit:
  • Обработчик скриптов добавляющий отладчик (debugger) - Последняя версия: AutoItScript Add Debugger
  • Интеракция между несколькими скриптами
  • Пример использование интеракции между скриптами - Добавление элементов GUI с внешнего модуля
  • Чтение и запись данных с/в окна/о SciTE
  • Пример автообновления версии своего приложения
  • Копирование большого файла с отображением данных прогресса
  • Создание динамического меню в Tray Icon (значок в области уведомлений)
  • Пример создания своего мастера (Wizard)
  • Метод, позволяющий запускать код VBS без создания временных файлов
  • Описание функции GUIRegisterMsg()
  • Пример перехвата вводимых символов с клавиатуры
  • Пример деактивирования TabItem
  • Пример вывода лога в Edit-поле (с поддержкой форматирования текста)
  • Пример остановки/начало выполнения скрипта + Слежение за буфером обмена с заменой неподдерживаемых в имени файла символов
  • Подключение приложения (GUI) к буферу обмена
  • Пример использования меню с значками (ModernMenu.au3) -> Список программ в меню значка в системном трее
  • Пример подсчёта интервала времени между нажатиями клавиш
  • Слежение нажатых элементов в текущем окне (под курсором)
  • Написание instant messaging Бота на AutoIt
  • Способ, позволяющий посылать нажатие клавиши в неактивное окно (не путать со свёрнутым)
  • Сервер <=> Клиент - Пример передачи файла
  • Пример отображения только элементов GUI (без самой оболочки)
  • Модуль, превращающий ваше приложение в Trial-версию
  • Слежение за выделенным текстом и с последующим его помещением в файл
     
    Отдельные функции и библиотеки (UDF):
  • Функции, относящиеся к интернету
  • Функции для работы с процессами и окнами
  • Функции для работы с файлами
  • Функции для GUI/Tray
  • Системные функции
  • Разное (то, что не подпадает под другие категории)
     


     
    За шапкой следит ViSiToR  

  • Всего записей: 24190 | Зарегистр. 07-04-2002 | Отправлено: 14:47 12-01-2009 | Исправлено: Maz, 11:50 17-04-2017
    AZJIO



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    NIKZZZZ
    Все три варианта возвращают десятичное число. Пробую использовать WinAPI, требуется при установке цвета указанный формат вида 0xff0000. Если устанавливаю напрямую число, то работает, а если через переменную с чтением комбобокса, но с условием, что в комбобоксе может оказаться прочитанный из html-файла цвет типа ff0000, создаётся проблема перевести один формат записи в другой.

    Всего записей: 4411 | Зарегистр. 03-05-2006 | Отправлено: 18:59 06-03-2010 | Исправлено: AZJIO, 19:01 06-03-2010
    NIKZZZZ



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

    Цитата:
    Все три варианта возвращают десятичное число.

    Вообще-то, число есть число, не зависимо от формата, в котором оно представлено. Формат (десятичный, двоичный и т.п.) создан исключительно для удобства работы - это просто представление информации в удобочитаемом виде.
     

    Цитата:
    Если устанавливаю напрямую число, то работает, а если через переменную с чтением комбобокса, но с условием, что в комбобоксе может оказаться прочитанный из html-файла цвет типа ff0000, создаётся проблема перевести один формат записи в другой.

    А ты сам можешь понять, что написал?
     
     
     

    Всего записей: 5365 | Зарегистр. 08-02-2006 | Отправлено: 19:56 06-03-2010
    AZJIO



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

    Цитата:
    А ты сам можешь понять, что написал?  
    а что там непонятно? Я записываю в DllStructSetData($CHOOSECOLOR, 4, $startColor) вместо $startColor число, то работает, а если делаю $startColor=GUICtrlRead ($colorname), то не работает, но раз десятичный формат читается, то это всего лишь вложенная программистами способность, ведь переданное число в виде #eeffee или eeffee не читается (а интерпретатор браузера читает), а это тоже самое число и приставка 0x не несёт смысловой нагрузки, возможно индекс определения что это является числом. )))))

    Всего записей: 4411 | Зарегистр. 03-05-2006 | Отправлено: 20:14 06-03-2010
    Cosmogor



    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Доброго времени суток.
     
    У меня есть вопрос,
    Как прописать команды батника в AutoIT
     
    Вот код батника:
     
    pushd "%TEMP%\"
    rd /s /q "." 2>nul
    popd

     
    Я понимаю , что надо делать примерно так.
     
    Код:
     
    Run (@ComSpec & ' /c pushd "%TEMP%\", @SW_HIDE)
     
    И таким образом три строчки подряд.
    Но дальше этого у меня не продвигается.
     
    Спс.

    Всего записей: 230 | Зарегистр. 22-04-2009 | Отправлено: 20:23 06-03-2010
    AZJIO



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    NIKZZZZ
    Можешь улучшить утилиту RegToScript в плане управления кнопками? Добавить drag-and-drop, а то приходится в папку программы перекидывать необходимые файлы, чтобы не искать их через кнопку "Обзор". Повторное открытие сбоит, особенно если радиокнопки переключить после открытия файла, приходится переоткрывать прогу, и кнопка Clipboard не работает.
     
    Вот для drag-and-drop нужно эти функции отмеченные:
    #include <GUIConstants.au3>
    #include <WindowsConstants.au3>
    $Gui = GUICreate("RegToScript",  200, 100, -1, -1, -1, $WS_EX_ACCEPTFILES)
     
    $Input1 = GUICtrlCreateInput("", 20, 20, 200, 20)
    GUICtrlSetState(-1,$GUI_DROPACCEPTED)
     
    While 1
    $msg = GUIGetMsg()
    Select
    Case $msg = $GUI_EVENT_DROPPED
    If @GUI_DropID=1 Then
    GUICtrlSetData($Input1, @GUI_DRAGFILE)
    $aPath = StringRegExp(@GUI_DRAGFILE, "(^.*)\\(.*)\.(.*)$", 3)
    GUICtrlSetData($Input2, $aPath[0]&$aPath[1]&'.au3')
    Endif
    If @GUI_DropID=2 Then GUICtrlSetData($Input2, @GUI_DRAGFILE)
     
    Добавлено:
    Cosmogor
    А какой смысл использовать эти команды в скрипте? в данном примере каждая строка Run является отдельным независимым стартом команды, как если бы запускать батники с этими командами поочереди. Команда pushd - сохранить каталог, вопрос зачем? Тем более папка темп... она в аутоит имеет свои переменные @TempDir, в справке их можно найти введя собаку @ в "Указатель".

    Всего записей: 4411 | Зарегистр. 03-05-2006 | Отправлено: 20:57 06-03-2010
    NIKZZZZ



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

    Цитата:
    Можешь улучшить утилиту RegToScript в плане управления кнопками?

    Вообще-то это утилита командной строки, GUI оболочка в общем-то и не нужна, разве-что для работы с ClipBoard, и то из stray'я.

    Всего записей: 5365 | Зарегистр. 08-02-2006 | Отправлено: 22:07 06-03-2010
    Cosmogor



    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    AZJIO
     
    Вот написал
    Код:
    FileSetAttrib(@TempDir & "\*.*", "-RASHNOT", 1)
    FileDelete(@TempDir & "\*.*")
    DirRemove(@TempDir & "\", 1)

     
    Папку Temp тоже удаляет.
    Хотелось бы, что бы папка Temp
    осталась, а удалилось всё её содержимое.
     
    И ещё вопрос, возможно ли написать переменную для такой команды.
    Код:
    FileCopy(@ScriptDir & "\Uninstall.ini", @ProgramFilesDir & "\Altdesk", 9)

    Всего записей: 230 | Зарегистр. 22-04-2009 | Отправлено: 23:01 06-03-2010
    AZJIO



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

    Цитата:
    Вообще-то это утилита командной строки
    Посмотрел с параметром /?, попробую тогда сам ей оболочку сделать...
     
    Cosmogor
    Я уж понял что это было очистка temp. Поробовал добавить скрипт NIKZZZZ поиск всех файлов и удаление, вот только каталог забыл сменить, винду снёс под корень...
    Но это не совсем правильно, там ведь и папки нужно удалять, да и поиск не обязателен. Требуется только поиск в корне.
     

    Цитата:
    И ещё вопрос, возможно ли написать переменную для такой команды.  

    так она уже написана, если только
    $Altdesk='Altdesk'
    FileCopy(@ScriptDir & "\Uninstall.ini", @ProgramFilesDir & "\" & $Altdesk, 9)
     
    ______________________________
    NIKZZZZ
    Посмотри оболочку для RegToScript. Потестировал, вроде чётко работает. Если есть время объедини её в прогу.
    1. Отправка в буфер работает
    2. При отсутствии RegToScript.ini предлагает его создать.
    3. Добавил секцию из трёх параметров для сохранения чекбоксов и радиокнопок.
    4. Добавлены чекбоксы авто-буфер и авто-файл.
    5. drag-and-drop - работает.
    С языком нужно определится, русский с английским.
     

    Всего записей: 4411 | Зарегистр. 03-05-2006 | Отправлено: 23:27 06-03-2010 | Исправлено: AZJIO, 04:24 07-03-2010
    madmasles

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Cosmogor
    Я папку Temp так чищу:
    Код:
    #include <File.au3>
     
    $timer  = TimerInit()
    $size   = DirGetSize(@TempDir,1)
    $DirList = _FileListToArray(@TempDir, "*", 2)
    $FileList = _FileListToArray(@TempDir, "*", 1)
     
    If $FileList <> 0 Then
        For $i = 1 To $FileList[0]
            FileDelete(@TempDir & "\" & $FileList[$i])
        Next
    EndIf
     
    If $DirList <> 0 Then
        For $i = 1 To $DirList[0]
            DirRemove(@TempDir & "\" & $DirList[$i], 1)
        Next
    EndIf
     
    $size1  = DirGetSize(@TempDir,1)
    $sizeDel1 = $size[0] - $size1[0]
    $sizeDel = Round($sizeDel1 / 1024, 2)
    $DirDel = $size[2] - $size1[2]
    $FileDel = $size[1] - $size1[1]
     
    $diff   = Round(TimerDiff($timer) / 1000, 3)
    If IsArray($size) Then
        MsgBox(0,"Информация","Удалено: " & $sizeDel & " кб" & @LF _
            &
    "Файлов: " & $FileDel & @LF & "Папок: " & $DirDel & @LF _
            &
    "Затраченное время: " & $diff & " сек." & @LF & "Не удалено файлов: " & $size1[1] _
            &
    " размером " & Round($size1[0] / 1024, 2) & " кб")
    EndIf
    Exit

    Всего записей: 1277 | Зарегистр. 25-09-2008 | Отправлено: 04:46 07-03-2010 | Исправлено: madmasles, 04:47 07-03-2010
    Cosmogor



    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    AZJIO, madmasles
     
    Спасибо за совет и примеры.

    Всего записей: 230 | Зарегистр. 22-04-2009 | Отправлено: 10:07 07-03-2010
    Cosmogor



    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Доброго времени суток.
     
    Вот составил скрипт, и его задача такая:
    1)При его запуске он ищет папку
    2)Ести не найдена, то делаем выход.
    3)Если найдена, то копируем себя в папку Temp
    с переименованием в случайное имя, затем пытаюсь  
    скопированный файл запустить, и запустить его вот с этого места
    Код:
    MsgBox (0, "Информация", "Идём дальше.")
    Но ничего не выходит из этой затеи.
     
    Код самого файла:
    ; Назначаем случайное число
    $Rdm = Random(2,6)
    ; Имя папки
    $Dir='Easy'
    ; Поиск папки где запущен скрипт
    If FileExists (@ScriptDir & "\" & $Dir) Then
    MsgBox (0,"Информация","Есть папка " & $Dir & ".")
    ; Копирование запускаемого файла  
    FileCopy(@ScriptFullPath, @TempDir & "\" & $Rdm & "_" & @ScriptName , 9)
    Sleep (700)
    ; Что-то делаем если папка найдена
    ; Запускаем скопированный файл
    Run(@TempDir & "\" & $Rdm & "_" & @ScriptName)
    ; И запустить его с вот этого места
    MsgBox (0, "Информация", "Идём дальше.")
    Else
    ; Что-то делаем если папка не найдена
    EndIf

     
    Помогите пожалуйста с этим скриптом
    If конечно это возможно.
     
    Спс.

    Всего записей: 230 | Зарегистр. 22-04-2009 | Отправлено: 16:30 08-03-2010 | Исправлено: Cosmogor, 16:48 08-03-2010
    AZJIO



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

    Всего записей: 4411 | Зарегистр. 03-05-2006 | Отправлено: 17:50 08-03-2010 | Исправлено: AZJIO, 01:41 17-03-2010
    madmasles

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Cosmogor
    Как-то у Вас неконкретно задача поставлена. Если я правильно понял, то:
    Код:
    #NoTrayIcon
    #include
    <File.au3>
    #include <Array.au3>
     
    $pathSearch = "Папка" ;папка для поиска
    $fileSearch = "Файл.exe" ;файл для поиска
    $path = _FileListToArray(@ScriptDir, "*", 2)
    $index = _ArraySearch($path, $pathSearch)
    If $index = -1 Then
        MsgBox(0, "", "Папка <" & $pathSearch & "> не найдена.", 5)
        Exit
    Else
        If Not FileExists($path[$index] & "\" & $fileSearch) Then
            MsgBox(0, "", "Файл <" & $fileSearch & "> не найден.", 5)
            Exit
        EndIf
    EndIf
    $s_FileName = _TempFile(@TempDir, "~", ".exe", 7)
    FileCopy(@ScriptDir & "\" & $path[$index] & "\" & $fileSearch, $s_FileName, 1)
    RunWait($s_FileName)
    FileDelete($s_FileName)

    Всего записей: 1277 | Зарегистр. 25-09-2008 | Отправлено: 18:24 08-03-2010 | Исправлено: madmasles, 18:27 08-03-2010
    Cosmogor



    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    madmasles
     
    При запуске скрипта, он копирует сам себя в папку Temp,
    и там запускается. А скрипт запущенный первоначально закрывается.
    С выше сказанным проблем нет. Это решено.
    А вот с запуском скрипта из середины, в этом вся проблема.
    Потому-что он запускается с самой первой строки.
     
    Вот если-бы можно было запустить скрипт который сам себя
    скопировал-бы в папку Temp, и продолжил бы свою работу
    из папки Temp, это было бы хорошо!
     
    Но он не может продолжить свою работу, он запускается по новому
     только из папки Temp.
    Вот и вся  проблема.
     
    Зы. Вроде не слишком запутано объяснил.
     
    Спс.

    Всего записей: 230 | Зарегистр. 22-04-2009 | Отправлено: 20:05 08-03-2010
    madmasles

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Cosmogor
    Попробуйте сделать несколько модулей и один, который ими управляет в зависимости от условий.

    Всего записей: 1277 | Зарегистр. 25-09-2008 | Отправлено: 21:02 08-03-2010 | Исправлено: madmasles, 21:13 08-03-2010
    Alkazarcol



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

    Цитата:
    Привет всем! А кто подскажет как можно считать дату и время создания файла на FTP?

     
    А по поводу моего вопросика не укого нет соображения! Просто очень надо! Я бы мог организовать через скачку но прав на скачку у мя нет и получить нет возможности! А контролировать обновление файлов очень надо!  
     
    Hellp!!!!!!!!  
     
    Добавлено:
     А то приходится изоощеряться  
     

    Код:
    #include <FTPEx.au3>
    #include <GUIConstantsEx.au3>
    #include <ProgressConstants.au3>
    #include <WindowsConstants.au3>
    #include <Process.au3>
    #Region ### START Koda GUI section ### Form=
    $Progress = GUICreate("Получение данных c ftp...", 267, 43, -1, -1)
    $Progress1 = GUICtrlCreateProgress(8, 8, 246, 25)
     
    #EndRegion ### END Koda GUI section ###
     
    if FileExists(StringTrimRight(@ScriptFullPath,4)&'_log.txt')=0 then
     
    if
    FileExists(StringTrimRight(@ScriptFullPath,4)&'.ini')=1 then
     
    else

        IniWrite(StringTrimRight(@ScriptFullPath,4)&'.ini','parameter','mask','*3400*')
    EndIf
     
    $mask=IniRead(StringTrimRight(@ScriptFullPath,4)&'.ini','parameter','mask','')
     
    IniWrite(StringTrimRight(@ScriptFullPath,4)&'.ini','parameter','mask',$mask)
     
    if $mask='' then $mask='*'
     
    if FileExists('c:\result.txt')=1 then FileDelete('c:\result.txt')
    $file = FileOpen('c:\ftp.txt', 2)
    If $file = -1 Then
        MsgBox(0, "Ошибка", "Не могу создать файл.")
        Exit
    EndIf

     
    FileWriteLine($file, "open ftp.server")
    FileWriteLine($file, "User")
    FileWriteLine($file, "Password")
    FileWriteLine($file, "cd obmen")
    FileWriteLine($file, 'dir '&$mask&' c:\result.txt')
    FileWriteLine($file, "close")
    FileWriteLine($file, "quit")
    FileClose($file)
    ;======================================================================
    $file = FileOpen('c:\ftp2.cmd', 2)
    If $file = -1 Then
        MsgBox(0, "Ошибка", "Не могу создать файл.")
        Exit
    EndIf

    FileWriteLine($file, 'ftp.exe -s:c:\ftp.txt')
    ;FileWriteLine($file, 'start /b notepad c:\result.txt')
    FileWriteLine($file, "exit")
    FileClose($file)
    _RunDos('c:\ftp2.cmd')
    GuiCtrlCreateProgress(60, 80, 150, 20)
    GuiCtrlSetData(-1, 60)
    GuiCtrlCreateLabel("Progress:", 5, 82)
    GUISetState(@SW_SHOW)
    for $i=1 to 100
     
      GUICtrlSetData($progress1, $i)
    sleep(100)
     
    next
    GUIDelete()
     
    $super=FileReadLine('c:\result.txt',1)  ; -r--r--r-- 1 ftp ftp            682 Mar 04 08:24 Message_ПВ3400110_ЦУ.zip
    $super=StringTrimLeft($super,36)        ;Mar 04 08:24 Message_ПВ3400110_ЦУ.zip
    $fftp=$super
    $File
    =StringTrimLeft($super,13)         ;Message_ПВ3400110_ЦУ.zip
    $super=StringLeft($super,12)            ;Mar 04 08:24
    $Mon=StringLeft($super,3)               ;Mar
    $Day=StringTrimLeft($super,4)           ;04 08:24
    $Time=StringTrimLeft($Day,3)            ;08:24
    $TimeHour=StringTrimRight($Time,3)      ;08
    $TimeMin=StringTrimLeft($Time,3)        ;24
    $Day=StringTrimRight($Day,6)            ;04
    $TimeHour=Number($TimeHour)
    $TimeMin=Number($TimeMin)
    $AllTime=$TimeHour*60+$TimeMin
    $CurTime
    =@HOUR*60+@MIN
    $Raznica=$CurTime-$AllTime
    if $Raznica<0 then MsgBox(0,'Внимание!','Файл на ftp был загружен '&$Raznica&' мин. назад, на компьютере не верная дата-время или последний обмен был вчера-позавчера!')
    if $Raznica>30 then MsgBox(0,'Внимание!','Файл на ftp был загружен '&$Raznica&' мин. назад, возможно есть проблемы с обменом!')
    if $Raznica<30 and $Raznica>=0  then MsgBox(0,'Внимание!','Файл на ftp был загружен '&$Raznica&' мин. назад, дата-время актуальные - обмен успешный!')
    $super='Файл обмена на ftp создан: '&$Day&' '&$Mon&' '&$Time;&' ';&$super3
    MsgBox(0,$file,$super)
    $failik=StringTrimRight(@ScriptFullPath,4)&'_log.txt'
    ;msgbox(0,'',$failik)
    $file = FileOpen($failik, 1)
    If $file = -1 Then
        MsgBox(0, "Ошибка", "Log файл не открывается.")
        Exit
    EndIf

    FileWriteLine($file, @hour&':'&@min&':'&@sec&' '&@MDAY&'.'&@mon&'.'&@YEAR&' - проверка обмена, файл на ftp - '&$fftp)
    FileClose($file)
    if FileExists('c:\ftp2.cmd')=1 then FileDelete('c:\ftp2.cmd')
    if FileExists('c:\ftp.txt')=1 then FileDelete('c:\ftp.txt')

    Всего записей: 13 | Зарегистр. 16-05-2008 | Отправлено: 10:04 09-03-2010 | Исправлено: Alkazarcol, 10:17 09-03-2010
    madmasles

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Cosmogor
    Мне не понятно зачем копировать себя в папку Temp и там запускаться по-новой. Если этого не делать, то у меня так получилось:
    Код:
    #NoTrayIcon
    #include
    <File.au3>
    #include <Array.au3>
     
    $pathSearch = "Папка" ;папка для поиска
    $fileSearch = "Файл" ;файл для поиска
    $fileCustomize = @TempDir & "\myCustomize.txt"
    If Not FileExists($fileCustomize) Then
        MsgBox(0, "", "Файла настройки нет", 10)
        _Customize()
    EndIf
     
    $condition1 = FileReadLine($fileCustomize, 1)
    $condition2 = FileReadLine($fileCustomize, 2)
     
    MsgBox(0, "", "Идем дальше", 10)
    RunWait($condition2)
     
    Func _Customize()
        $path = _FileListToArray(@ScriptDir, "*", 2)
        $index = _ArraySearch($path, $pathSearch)
        If $index = -1 Then
            MsgBox(0, "", "Папка <" & $pathSearch & "> не найдена.", 5)
            Exit
        Else
            If Not FileExists($path[$index] & "\" & $fileSearch) Then
                MsgBox(0, "", "Файл <" & $fileSearch & "> не найден.", 5)
                Exit
            EndIf
        EndIf
        $hFile = FileOpen($fileCustomize, 2)
        FileWriteLine($fileCustomize, @ScriptDir & "\" & $path[$index])
        FileWriteLine($fileCustomize, @ScriptDir & "\" & $path[$index] & "\" & $fileSearch)
        FileClose($hFile)
    EndFunc   ;==>_Customize

    Всего записей: 1277 | Зарегистр. 25-09-2008 | Отправлено: 10:40 09-03-2010 | Исправлено: madmasles, 10:43 09-03-2010
    Cosmogor



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

    Цитата:
    Мне не понятно зачем копировать себя в папку Temp и там запускаться по-новой

     
    Ну я хотел сделать что-то вроде файла Uninstall.exe
    для одной программы.
    Спасибо за то что откликнулся.
    Будем решать проблему другим способом.
     

    Всего записей: 230 | Зарегистр. 22-04-2009 | Отправлено: 20:56 09-03-2010
    madmasles

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

    Цитата:
    Ну я хотел сделать что-то вроде файла Uninstall.exe
    В этой теме посмотрите: Удаление папки @ScriptDir

    Всего записей: 1277 | Зарегистр. 25-09-2008 | Отправлено: 22:53 09-03-2010
    AZJIO



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    madmasles
    Unlocker.exe поддерживает ком-строку, если его внедрить в деинсталятор то возможно получится удалить без перезагрузки, хотя чаще всего после такого удаления оболочка эксплорера перезапускается и все окна приходится открывать заново.
    А если с перезагрузкой, то в реестре в
    Цитата:
    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnceEx
    добавить батник/скрипт продолжения удаления. В этой ветке реестра команда выполняется один раз во время загрузки винды.

    Всего записей: 4411 | Зарегистр. 03-05-2006 | Отправлено: 09:01 10-03-2010
       

    Страницы: 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 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166

    Компьютерный форум Ru.Board » Компьютеры » Программы » AutoIT (Часть 2)
    Widok (01-06-2010 13:08): Лимит страниц. Продолжаем здесь.


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

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

    BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

    Рейтинг.ru