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

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

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

gyra (23-01-2020 10:51): AutoIT (Часть 4)  Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 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 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200

   

Widok



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

 
Описание:

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

 
  • Справки
  • Инструменты
  • Ресурсы, посвящённые AutoIt
  • Полезные советы новичкам и не только
  • Готовые решения
  • Скрипт раскраски кода AutoIt для публикации в форумах
     


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

  • Всего записей: 24190 | Зарегистр. 07-04-2002 | Отправлено: 13:07 01-06-2010 | Исправлено: Maz, 12:29 10-01-2020
    Sinclair83

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    NIKZZZZ
    А я и не скрываюсь (не использую пакеры/протекторы/подмену сигнатур и пр. и пр.). Да, это могучий PB. Спасибо, что напомнили про тему Autoit, просто предположил что для kinor не принципиально на каком языке будет решена задача.
    А исходник там пустяковый. Не сочтите за рекламу, но думаю, что правильным будет указать первоисточник. Вот он (последний код на странице). Позаимствовал его. Собственно весь код и крутится вокруг этой процедуры (здесь логика совпадает с той, о которой выше писал AZJIO). Ну и совсем немного элементарной математики. К начальному значению, считанному с DateGadget, прибавляю 86400 (сек. в сутках) и каждый раз прогоняю через вышеуказанную процедуру. Вот собственно и всё.

    Всего записей: 757 | Зарегистр. 07-01-2009 | Отправлено: 15:32 12-07-2019 | Исправлено: Sinclair83, 15:34 12-07-2019
    dialmak



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

    Цитата:
    Формат "Краткой Даты" должен быть установлен как: "dd.MM.yyyy"  

    есть такая штука в API как региональные настройки
    то есть всегда можно узнать какой-же формат даты и времени читается. когда-то делал - работало

    Всего записей: 14007 | Зарегистр. 27-04-2013 | Отправлено: 16:02 12-07-2019 | Исправлено: dialmak, 16:03 12-07-2019
    Sinclair83

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    dialmak
    Спасибо за совет (искренне). Тоже где-то в закромах лежит заготовка по чтению системного разделителя даты и времени. Да, нашёл. Вот эта API использовалась: GetLocaleInfo
     
    Пока что жду ответа от kinor. Стоит ли вообще развивать эту тему или уже не нужно.

    Всего записей: 757 | Зарегистр. 07-01-2009 | Отправлено: 17:10 12-07-2019
    kinor



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

    Цитата:
    Если устроит такой вариант, то можно добавить дополнительные праздничные дни(государственные праздники), которые выпадают на рабочие дни (Пн-Пт), через внешний txt-файл.  

     
    Sinclair83 извините не мог ответить своевременно. Ваш вариант тоже достоен как и вариант NIKZZZZ. Огромное спасибо обоим.
     

    Цитата:
    Пока что жду ответа от kinor. Стоит ли вообще развивать эту тему или уже не нужно.

     
    Как для меня то это меня интересует, только если Вас не затруднит организовать подвязку праздничных дней с переносом на рабочие дни через внешний txt-файл

    Всего записей: 119 | Зарегистр. 12-02-2018 | Отправлено: 22:32 12-07-2019
    Sinclair83

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    kinor
    Чуть исправленная версия. Проверьте, правильно ли считает. "Ext_holidays.txt" должен быть рядом. Но его может и не быть, если не требуется дополнять нерабочие дни ( все Субботы и Воскресенья). Формат записи в txt-файле: 2-х значное число (День), точка, 2-х значное число (Месяц), точка. Каждая дата с новой строки. Лишних пробелов нужно избегать.
    Позволил себе небольшую вольность, а именно: нельзя заключать договор в выходной день. То есть, если выберите праздничный или выходной день, то программа не станет расчитывать. Это не касается случая, когда считаются все дни (отмечен чекбокс).
     
    У нас уже довольно поздно (за полночь), поэтому ответить сиюминутно не получится.
    Удачи!

    Всего записей: 757 | Зарегистр. 07-01-2009 | Отправлено: 23:02 12-07-2019
    gryu



    дикий гусь
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Вопрос.
    Скрытый запуск программы как осуществляется тут?  
    Поиском только метод через vbs находится.  
    А через AutoIt как?
     
    В частности собрал вот такой скрипт по аналогии со скриптами в инете.
    Подробнее...
    Как добавить скрытый запуск? Чтоб окно запускаемой программы не вылезало.

    Всего записей: 13025 | Зарегистр. 15-03-2006 | Отправлено: 15:01 16-07-2019 | Исправлено: gryu, 15:59 16-07-2019
    Skif_off

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

    Код:
    $iPID = Run('<запуск программы с ключами>', '', @SW_HIDE)

    ?

    Всего записей: 6462 | Зарегистр. 28-01-2008 | Отправлено: 01:18 17-07-2019
    gryu



    дикий гусь
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Skif_off
    Спасибо. Вроде работает.  
    Можно пояснить синтаксис '', @SW_HIDE?
    Я пробовал дописывать , hide, ругалось.  
    Изначально вообще пробовал сделать по аналогии с известным в инете  скриптом Run, defrag.exe /C /H,, hide, PID  
    Но что то поменялось и в этом виде этот скрипт уже не работает.  
    Подробнее...

    Всего записей: 13025 | Зарегистр. 15-03-2006 | Отправлено: 12:49 17-07-2019 | Исправлено: gryu, 12:51 17-07-2019
    NIKZZZZ



    Gold Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    gryu
     
    @SW_HIDE это макрос, равный нулю, удобен для читаемости.
    То-есть, можно написать так, это полностью эквивалентно.

    Код:
    $iPID = Run('<запуск программы с ключами>', '', 0)  

    Всего записей: 5365 | Зарегистр. 08-02-2006 | Отправлено: 13:50 17-07-2019
    Andrey_A_A



    Advanced Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    gryu. для defrag в некоторых системах требуется перенапрвление - напрямую может не запуститьяся...
    Я пользуюсь этим - можете подправить под себя:
     

    Код:
     
    Func _RunEx($sProgram,$sWorkingDir='',$iFlag=0,$iOpt=0,$iIndex=0,$vTag=DllStructGetPtr(DllStructCreate('dword')))
      DllCall('kernel32.dll','int','Wow64DisableWow64FsRedirection','ptr',$vTag)
      $iPID=$iIndex ? RunWait($sProgram,$sWorkingDir,$iFlag,$iOpt): Run($sProgram,$sWorkingDir,$iFlag,$iOpt)
      DllCall('kernel32.dll','int','Wow64RevertWow64FsRedirection','ptr',$vTag)
      Return $iPID
    EndFunc

     

    Всего записей: 1379 | Зарегистр. 15-08-2011 | Отправлено: 14:15 17-07-2019 | Исправлено: Andrey_A_A, 14:23 17-07-2019
    gryu



    дикий гусь
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    NIKZZZZ
    Andrey_A_A
    Спасибо.  
    Ещё вопрос.  
    Пытаюсь скрипт скомпилировать в exe-шник. Ну чтоб среду AutoIt ставить не нужно было.  
    Штатный компилятор имеет 3 строки.
    1. исходник
    2. целевой файл
    3. Иконка
    Вопрос. А добавить описание можно как то? А лучше чтоб ещё и цифровую подпись сформировать и внести....  а то пока это всё больше на школьный вирус похоже... чёрт его знает как после очередного обновления антивири себя поведут...  

    Всего записей: 13025 | Зарегистр. 15-03-2006 | Отправлено: 15:41 17-07-2019 | Исправлено: gryu, 17:01 17-07-2019
    dialmak



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

    Цитата:
    А добавить описание можно как то? А лучше чтоб ещё и цифровую подпись сформировать и внести....  

    Имя, описание, копирайт и т.д. вносится стандартным способом прямо в компиляторе, если не хочется ставить GUI - курите помощь по комстроке компилятора. Как альтернативный вариант редактировать EXE-шник через редактор ресурсов, к примеру через http://www.angusj.com/resourcehacker/
    По поводу цифровой подписи вопрос сложнее. Подписать можно прямо в компиляторе AutoIt или позже другой утилитой, эт не имеет значение. Вопрос ЧЕМ подписать, вариантов всего три - не подписывать, подписать самоподписным сертификатом и купленным (или спонсируемым)  действительным сертификатом.
     
    Конечно можно всунуть и свой САМОПОДПИСНОЙ сертификат. И типа плевать на всех.
    НО.  
    ОС его не знает и значит будет выдавать соответствующее предупреждение. И это не есть хорошо.
    Конечно, если все компы, которые будут использовать приложение известны - то можно просто импортировать его. Самый простой вариант.
    Для всех других неизвестных компов - купить сертификат для подписи приложений, это дорого, конкретно сколько это стОит зависит от условий, вот опять пример,  ясен пень приложение и вы будете под аудитом.
    Кстати сертификат можно получить и бесплатно у самой MS, но там довольно жесткий отбор и условия. Дают организациям и их участникам, хотя я знаю случаю когда давали и конкретной фирме или разработчику за качественное ПО
     
    Добавил просто для инфы. И последний вариант - хакнуть (украсть) валидную подпись (сертификат), случаи известны, но сомневаюсь, что вы сможете, это подвластно только избранным, которые имеют доступ к приватным ключам.. Это актуально для вирусняка и таких людей регулярно ловят или не ловят, хз..

    Всего записей: 14007 | Зарегистр. 27-04-2013 | Отправлено: 19:30 17-07-2019 | Исправлено: dialmak, 22:22 17-07-2019
    gryu



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

    Цитата:
    Добавил просто для инфы. И последний вариант - хакнуть (украсть) валидную подпись (сертификат), случаи известны, но сомневаюсь, что вы сможете, это подвластно только избранным, которые имеют доступ к приватным ключам.. Это актуально для вирусняка и таких людей регулярно ловят или не ловят, хз..
    Ну вообще то и не собирался.  
    У нас в конторе есть сертификаты. Хотел просто использовать один из.
    Цитата:
    Имя, описание, копирайт и т.д. вносится стандартным способом прямо в компиляторе, если не хочется ставить GUI - курите помощь по комстроке компилятора  
    Где? У меня стоит пакет AutoIT3 скачаный с сайта. Там есть компилятор. В компиляторе только 3 строки (см выше) ну и галка компилить в x64 или нет.  

    Всего записей: 13025 | Зарегистр. 15-03-2006 | Отправлено: 19:44 17-07-2019 | Исправлено: gryu, 19:56 17-07-2019
    NIKZZZZ



    Gold Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    gryu
    Можно скомпилировать из ком. строки.
     
    А проще установить SciTE.
     

    Всего записей: 5365 | Зарегистр. 08-02-2006 | Отправлено: 20:14 17-07-2019
    dialmak



    BANNED
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    gryu
    По поводу
    Цитата:
    Имя, описание, копирайт и т.д. вносится стандартным способом  

    скрин
     
       
     
    Добавлено:

    Цитата:
    У нас в конторе есть сертификаты. Хотел просто использовать один из.  

    Сертификаты есть разные, некоторые просто не подходят для подписи EXE. Например сертификат для сайта или документа не прокатят для приложения EXE.
    Не знаю как подписывать из компилятора (просто не пробовал), можно подписать после создания EXE стандартным signtool
     
    Добавлено:
    Хм. Что-то наверное попутал. По ходу такое при компиляции невозможно, странно..  
    Тут есть что-то, но советую все-таки юзать обычный signtool

    Всего записей: 14007 | Зарегистр. 27-04-2013 | Отправлено: 20:18 17-07-2019 | Исправлено: dialmak, 20:35 17-07-2019
    gryu



    дикий гусь
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    dialmak
    NIKZZZZ

    У меня какой то другой компилятор. Завтра пошукаю тот, с которого вы скрины дали.

    Всего записей: 13025 | Зарегистр. 15-03-2006 | Отправлено: 20:32 17-07-2019
    NIKZZZZ



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

    Цитата:
    Не знаю как подписывать из компилятора (просто не пробовал), можно подписать после создания EXE стандартным signtool

    Просто прописать запуск signtool

    Код:
    #AutoIt3Wrapper_Run_After=%scitedir%\,,,,,,\signtool.exe sign /f "%scitedir%\....\Sert\Sert.pfx" "%out%"
    #AutoIt3Wrapper_Run_After=%scitedir%\......\signtool.exe sign /f "%scitedir%\....\Sert\Sert.pfx" "%outx64%"

     

    Всего записей: 5365 | Зарегистр. 08-02-2006 | Отправлено: 20:35 17-07-2019 | Исправлено: NIKZZZZ, 20:38 17-07-2019
    dialmak



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

    Цитата:
    Просто прописать запуск signtool  

    Спасибо. Ну да, враппер рулит, я уж лет несколько не запускал автоит, подзабыл
    Хотя для уменьшения ошибок и ускорения компилирования лучше это сделать на последней версии ручками из комстроки, имхо..
     
    Добавлено:
    gryu

    Цитата:
    У меня какой то другой компилятор.

    Да нет, у тебя просто не установлен редактор https://www.autoitscript.com/cgi-bin/getfile.pl?../autoit3/scite/download/SciTE4AutoIt3.exe
    Из него и нужно открывать и редактировать и компилировать скрипт и тогда все увидишь

    Всего записей: 14007 | Зарегистр. 27-04-2013 | Отправлено: 20:39 17-07-2019 | Исправлено: dialmak, 20:43 17-07-2019
    NIKZZZZ



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

    Цитата:
    Ну да, враппер рулит

    К стати, перед signtool желательно поправить контрольные суммы .exe.

    Код:
    #AutoIt3Wrapper_Run_After=%scitedir%\....\CheckSumPe.exe /c "%out%"

     
    Добавлено:

    Цитата:
    Хотя для уменьшения ошибок и ускорения компилирования лучше это сделать на последней версии ручками из комстроки, имхо..  

    Я обычно просто на процессе отладки комментирую эти строки.  

    Всего записей: 5365 | Зарегистр. 08-02-2006 | Отправлено: 20:47 17-07-2019
    dialmak



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

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

    странно, что сигнтул это не делает, но может это и правильно, кесарю - кесарево
    в принципе это важно только для AV, типа для публичного релиза..
     
    может и ошибаюсь, но по-моему добавление сертификата - стандартная фича для NSIS, Inno Setup, etc
     

    Всего записей: 14007 | Зарегистр. 27-04-2013 | Отправлено: 20:56 17-07-2019 | Исправлено: dialmak, 21:03 17-07-2019
       

    Страницы: 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 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200

    Компьютерный форум Ru.Board » Компьютеры » Программы » AutoIT (Часть 3)
    gyra (23-01-2020 10:51): AutoIT (Часть 4)


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

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

    BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

    Рейтинг.ru