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

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в 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
    yozhic



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    AZJIO
    Если будете браться за CreationGUI, то может стоит добавить в список элементов псевдо-элементы LineH и LineV (горизонтальную и вертикальную линии)? А то способ их создания неочевиден, следовательно кто не знает где искать, тот немало времени на перекапывание справки может потратить.

    Всего записей: 2979 | Зарегистр. 20-03-2008 | Отправлено: 18:01 08-11-2014
    AlexM2222



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Skif_off, запутался я что-то...
    Читать дальше..

    Всего записей: 116 | Зарегистр. 05-09-2010 | Отправлено: 18:23 08-11-2014 | Исправлено: AlexM2222, 18:25 08-11-2014
    Skif_off

    Gold Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    AlexM2222
    Просто замените WinSetState($Form1_1, '', @SW_xxx) на GUISetState(@SW_xxx, $Form1_1).
    Или вообще не запускается?

    Всего записей: 6596 | Зарегистр. 28-01-2008 | Отправлено: 19:46 08-11-2014 | Исправлено: Skif_off, 19:47 08-11-2014
    AlexM2222



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

    Цитата:
    Или вообще не запускается?

    Нажимаешь кнопку 1 или 2, закрывается форма - перезапуск - появляется форма...(не запускается установка)

    Всего записей: 116 | Зарегистр. 05-09-2010 | Отправлено: 20:01 08-11-2014
    Skif_off

    Gold Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    AlexM2222
    В общем, нужно не дать тому, что запустилось из winpeshl.ini закрыться до запуска setup.exe
    В виде костыля:

    Всего записей: 6596 | Зарегистр. 28-01-2008 | Отправлено: 23:59 08-11-2014
    AlexM2222



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Skif_off и AZJIO, всё заработало, огромное вам спасибо за помощь...
    Вот окончательный вариант - может кому-нибудь пригодится!
    Читать дальше..
    Вот что получилось!

     

    Всего записей: 116 | Зарегистр. 05-09-2010 | Отправлено: 15:03 09-11-2014 | Исправлено: AlexM2222, 17:29 30-11-2014
    AZJIO



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

    Код:
    GUICtrlSetFont(-1, 9, 400, 0, "Tahoma")

    Можно назначить шрифт для всего GUI (см GUISetFont.), а отдельно для жирного

    Код:
    GUICtrlSetFont(-1, 9, 800)

    Так короче:
    Код:
    if MsgBox(4 + 32, 'Выход из программы установки', 'Вы точно хотите закрыть программу?') = 6 Then Exit

    Стиль окна с одной кнопкой закрытия:
    Код:
    BitOr($WS_CAPTION, $WS_SYSMENU, $WS_POPUP)

    Всего записей: 4559 | Зарегистр. 03-05-2006 | Отправлено: 00:21 28-11-2014
    AlexM2222



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

    Цитата:
    Стиль окна с одной кнопкой закрытия: Код: BitOr($WS_CAPTION, $WS_SYSMENU, $WS_POPUP)

    AZJIO, что-то не пойму куда это вставить в скрипт, оно ведь и так работает...
    Строчку с MsgBox заменил...
    И ещё вопросик: умные люди посоветовали что Восстановлениие системы лучше запускать командой  

    Код:
    %windir%\system32\netstart.exe,-prompt
    %SYSTEMDRIVE%\sources\recovery\recenv.exe

    как это прописать в скрипте, так можно

    Код:
    Case $Button3
    GUISetState(@SW_HIDE, $Form1)
    RunWait("%windir%\system32\netstart.exe -prompt")
    RunWait("X:\Sources\Recovery\RecEnv.exe")
    GUISetState(@SW_SHOW, $Form1)

    Всего записей: 116 | Зарегистр. 05-09-2010 | Отправлено: 21:06 28-11-2014
    Skif_off

    Gold Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    AlexM2222
    С RunWait() скрипт остановится и будет ждать завершения запущенного процесса, поэтому netstart.exe -prompt нужно запускать функцией Run().

    Всего записей: 6596 | Зарегистр. 28-01-2008 | Отправлено: 22:22 28-11-2014
    AZJIO



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    AlexM2222
    Когда стиль указан правильно, в функции создания GUI указывается размер клиентской области, а размер заголовка на каждой системе разный и он окаймляет клиентскую область. Когда стиль указан не правильно, то система судя по стилю WS_SYSMENU добавит заголовок окна и нарисует его на клинтской области, вернее построит окно таким образом что заголовок будет втиснут в указанные размеры окна и клиентская область будет варьировать по размеру в зависимости от размера заголовка, то есть нижние кнопки могут оказаться частично за гранью окна, если у тебя маленький заголовок а у соседа большой или наоборот иметь снизу непропорциональный промежуток если у тебя большой заголовок а у соседа маленький. Если у тебя есть заголовок окна, то стиль WS_CAPTION должен быть указан, иначе ты чего-то не понимаешь. WS_POPUP - временное окно, они все временные, попользовался и закрыл.

    Всего записей: 4559 | Зарегистр. 03-05-2006 | Отправлено: 18:33 29-11-2014
    DragonSerW



    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Не в первый раз задаю этот вопрос, но все время получал на него некорректные ответы, поэтому имею смелость задать снова:
    Как запустить .msi файл из папки без указания точного имени?
    То есть например лежит у меня в папке 7z920.msi, а я хочу запускать его не по имени, а по маске - 7z*.msi.

    Всего записей: 274 | Зарегистр. 11-05-2007 | Отправлено: 19:33 05-12-2014
    ynbIpb



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

    Код:
    #include <File.au3>
    $sPath = @ScriptDir ; путь к каталогу, где лежит *.msi файл.
    $aMsiFiles = _FileListToArray($sPath, "7z*.msi", 1)
    If $aMsiFiles <> 0 Then ; если найден хоть один файл, то выполняем условие
        ShellExecute ($sPath & "\" & $aMsiFiles[1]) ; запускаем первый файл
    EndIf

    Всего записей: 1645 | Зарегистр. 01-05-2006 | Отправлено: 00:09 06-12-2014
    DragonSerW



    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    ynbIpb, работает, спасибо вам огромное. Скажите, а можно ли
    1) сделать так, чтобы не требовался File.au3;
    2) запускать не первый, а последний файл?

    Всего записей: 274 | Зарегистр. 11-05-2007 | Отправлено: 20:03 07-12-2014
    NIKZZZZ



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

    Цитата:
    запускать не первый, а последний файл?

    А по какому критерию? Дата создания, сортировка по имени и т.п.?

    Всего записей: 5365 | Зарегистр. 08-02-2006 | Отправлено: 20:12 07-12-2014
    DragonSerW



    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    NIKZZZZ по имени. То есть если лежат 7z920 и 7z921, запускать 7z921.

    Всего записей: 274 | Зарегистр. 11-05-2007 | Отправлено: 20:18 07-12-2014
    NIKZZZZ



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

    Код:
    $sPath = @ScriptDir
    $sExeFileName = ""
    $hSearch = FileFindFirstFile($sPath & "\7z*.msi")
    If Not $hSearch = -1 Then
        While 1
            $sFileName = FileFindNextFile($hSearch)
            If @error Then ExitLoop
            If $sFileName > $sExeFileName Then $sExeFileName = $sFileName
        WEnd
        FileClose($hSearch)
    EndIf
    If $sExeFileName <> "" Then ShellExecute($sPath & "\" & $sExeFileName)


    Всего записей: 5365 | Зарегистр. 08-02-2006 | Отправлено: 20:38 07-12-2014 | Исправлено: NIKZZZZ, 15:25 10-12-2014
    yozhic



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Comrades
    Откомпилировал у себя скрипт, AutoIt 3.3.8.1, в двух битностях сразу: в х86 и х64. На х86.exe ругается антивирус, на x64.exe никакой реакции. Что он там нашёл? Не мог бы кто скомпилировать исходник у себя, чтоб понять где причина (может у меня на компе что, хотя не должно быть, проверял, всё чисто)? Надеюсь просьба не наивно звучит, если да, то поправьте, пожалуйста.
     
    Добавлено:
    И вопросы. GUI с изменяемыми размерами окна. Как сделать:
    1) чтобы меньше определённого порога размер не менялся?
    2) чтобы при увеличении размера кнопки не расползались кто куда?

    Всего записей: 2979 | Зарегистр. 20-03-2008 | Отправлено: 16:36 08-12-2014
    NIKZZZZ



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

    Цитата:
    х86.exe ругается антивирус

    Не используй UPX.
     
     

    Всего записей: 5365 | Зарегистр. 08-02-2006 | Отправлено: 17:10 08-12-2014
    timsky



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

    Цитата:
    2) чтобы при увеличении размера кнопки не расползались кто куда?

    После создания элемента надо указать его поведение в случае изменения размера окна (resizing). Например, чтобы объект всегда стремился к левому верхнему углу и сохранял размер:

    Код:
    GUICtrlSetResizing(-1, $GUI_DOCKALL)

    См.в в хелпе GUICtrlSetResizing. там все понятно

    Цитата:
    1) чтобы меньше определённого порога размер не менялся?

    Никогда еще не заморачивался толком

    Всего записей: 2287 | Зарегистр. 08-06-2004 | Отправлено: 18:13 08-12-2014 | Исправлено: timsky, 18:21 08-12-2014
    madmasles

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    yozhic
    Цитата:
    чтобы меньше определённого порога размер не менялся
    Смотрите в русской справке WM_GETMINMAXINFO.

    Всего записей: 1277 | Зарегистр. 25-09-2008 | Отправлено: 19:57 08-12-2014
       

    Страницы: 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