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

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



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

    Код:
    $objShell = ObjCreate('Shell.Application')
    $objShell.ShellExecute('file.exe', 'Parameters', 'WorkingDir', "runas")
    ProcessWaitClose('file.exe')
     

    Всего записей: 259 | Зарегистр. 31-01-2004 | Отправлено: 18:27 17-02-2015
    NIKZZZZ



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

    Код:
    ShellExecute ( "filename" , "parameters" , "workingdir" , "runas")

    Всего записей: 5365 | Зарегистр. 08-02-2006 | Отправлено: 19:11 17-02-2015
    Skif_off

    Gold Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Citramon
    NIKZZZZ
    Спасибо, как обойти вроде помню, но есть одно, хотя и не часто всплывающее, неудобство - в отличие от Run() не возвращают PID. А вот почему косячит Run()? Смотрел описание функции CreateProcess нашёл флаг CREATE_PROTECTED_PROCESS, попутно нашёл _WinAPI_CreateProcess() с $tagPROCESS_INFORMATION, но всё равно не понял В принципе, наверное, ладно с ним, есть ProcessList() и _WinAPI_GetParentProcess() на крайний случай.

    Всего записей: 6473 | Зарегистр. 28-01-2008 | Отправлено: 22:34 17-02-2015
    madmasles

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Skif_off
    Цитата:
    неудобство - в отличие от Run() не возвращают PID
    В версии AutoIt 3.3.12.0 возвращает.

    Всего записей: 1277 | Зарегистр. 25-09-2008 | Отправлено: 23:03 17-02-2015
    king_stiven

    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Полностью AutoItX не устанавливал, зарегистрирована AutoItX3.dll, запускаю из комстроки:
     
    start "" 1.vbs "123"
     
    1.vbs

    Код:
     
    Set oAutoIt = WScript.CreateObject("AutoItX3.Control")
    oAutoIt.ControlSetText  "Информация о фильме", "", "TcxCustomInnerTextEdit10", "123"
     

     
    Мне надо, чтобы  параметр 123, который я батником передаю, в соответствующее поле, возможно ли это?
     
    так не проходит
    oAutoIt.ControlSetText  "Информация о фильме", "", "TcxCustomInnerTextEdit10", "$CmdLine[1]"
     
    oAutoIt.ControlSetText  "Информация о фильме", "", "TcxCustomInnerTextEdit10", "($CmdLine[1])"

    Всего записей: 2229 | Зарегистр. 17-07-2006 | Отправлено: 18:01 18-02-2015 | Исправлено: king_stiven, 18:05 18-02-2015
    NIKZZZZ



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

    Цитата:
    Как мне передать параметр 123

     

    Код:
    Set oAutoIt = WScript.CreateObject("AutoItX3.Control")
    Set objArgs = WScript.Arguments
    oAutoIt.ControlSetText  "Информация о фильме", "", "TcxCustomInnerTextEdit10", objArgs(0)

    Всего записей: 5365 | Зарегистр. 08-02-2006 | Отправлено: 18:45 18-02-2015 | Исправлено: NIKZZZZ, 18:50 18-02-2015
    jekov



    Advanced Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    Как сделать правильно GUICtrlCreatePic() из drag&drop picture ? Спасибо !

    Код:
     
    Example()
    Func Example()
        GUICreate(" ", 489, 215, 268, 174, -1, BitOR($WS_EX_ACCEPTFILES,$WS_EX_WINDOWEDGE))
        Local $idFile2 = GUICtrlCreateInput("", 18, 99, 300, 21)
        GUICtrlSetState(-1, $GUI_DROPACCEPTED)
        Local $Pic1 = GUICtrlCreatePic( GUICtrlRead($idFile2), 352, 48, 108, 92)
        GUICtrlCreateGroup("Preview", 336, 24, 137, 137)
        GUISetState(@SW_SHOW)
        While 1
                 GUICtrlCreatePic( GUICtrlRead($idFile2), 352, 48, 108, 92)
        Switch GUIGetMsg()
                 Case $GUI_EVENT_CLOSE
                      ExitLoop
              Case $Pic1
            EndSwitch
        WEnd
    EndFunc   ;==>Example
     

    Всего записей: 1265 | Зарегистр. 11-09-2005 | Отправлено: 20:02 18-02-2015 | Исправлено: jekov, 19:39 19-02-2015
    king_stiven

    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    NIKZZZZ
    Спасибо, всё пучком. Теперь то же самое, но нужно вставить буфер обмена, содержащий массу спецсимволов, если решения нет, то, через эмуляцию клавиш сделаю.
     
    oAutoIt.ControlSetText  "Информация о фильме", "", "TcxCustomInnerTextEdit10", "тут текст из буфера обмена"
     
    Вроде нашёл
    oAutoIt.ControlSend  "Информация о фильме", "", "TcxCustomInnerTextEdit10", "^v"
     
     
    Добавлено:
    Допустим, такая ситуация, одновременно запущены несколько скриптов, каждый из которых работает со свои окном, вводя туда данные, может ли из -за этого вознкнуть путаница, или все данные будут чётко в своё окно отправлены?

    Всего записей: 2229 | Зарегистр. 17-07-2006 | Отправлено: 20:57 18-02-2015 | Исправлено: king_stiven, 21:12 18-02-2015
    madmasles

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    jekov
    Цитата:
    как сделать правильно GUICtrlCreatePic() из drag&drop picture
    Можно примерно так сделать. Подробнее...

    Всего записей: 1277 | Зарегистр. 25-09-2008 | Отправлено: 14:33 19-02-2015 | Исправлено: madmasles, 19:11 19-02-2015
    NIKZZZZ



    Gold Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    king_stiven
    Если уж пользуешь AutoitX

    Код:
    Set oAutoIt = WScript.CreateObject("AutoItX3.Control")
    Set objArgs = WScript.Arguments
    oAutoIt.ControlSetText  "Информация о фильме", "", "TcxCustomInnerTextEdit10", oAutoIt.ClipGet()
     

     
     
     
    Добавлено:

    Цитата:
    все данные будут чётко в своё окно отправлены?

    Данные будут отправлены в активное окно, "Информация о фильме" не позволяет его однозначно идентифицировать, лучше использовать handle окна.

    Всего записей: 5365 | Зарегистр. 08-02-2006 | Отправлено: 17:52 19-02-2015
    jekov



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

    Цитата:
    Можно примерно так сделать. Подробнее...

    Спасибо!
    А я нарыл попроще, для своего Gui:

    Код:
     
     #include <GUIConstantsEx.au3>
     #include <WindowsConstants.au3>
     Example()
    Func Example()
        GUICreate("GUI_DRAG_PICTURE", 489, 215, 268, 174, -1, BitOR($WS_EX_ACCEPTFILES,$WS_EX_WINDOWEDGE))
        Local $idFile2 = GUICtrlCreateInput("", 18, 99, 300, 21)
        GUICtrlSetState(-1, $GUI_DROPACCEPTED)
        Local $Pic1 = GUICtrlCreatePic( GUICtrlRead($idFile2), 352, 48, 108, 92)
        GUICtrlCreateGroup("Preview", 336, 24, 137, 137)
        GUISetState(@SW_SHOW)
     While 1
      $msg = GUIGetMsg ( )
        Switch $msg
            Case $GUI_EVENT_CLOSE
                Exit
            Case $GUI_EVENT_DROPPED
                GUICtrlSetImage ( $Pic1, @GUI_DRAGFILE )
        EndSwitch
     WEnd
    EndFunc   ;==>Example
     

    Всего записей: 1265 | Зарегистр. 11-09-2005 | Отправлено: 19:37 19-02-2015
    redson



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    ребята нужна помощь, есть программа _ww.nirsoft.net/utils/chromepass.html, которая собирает пароли от хрома, но разработчик выключил поддержку коммандной строки. нужен готовый скрипт на AutoIt, чтобы делал следующее:
     
    -запустил ChromePass.exe
    -выделил выделил все что он отобразил (Ctrl + A)  
    -зашел в меню File нажал Save Selected Items
     
    заранее спасибо)

    Всего записей: 1336 | Зарегистр. 23-04-2007 | Отправлено: 21:33 20-02-2015
    jekov



    Advanced Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    А вот ,как с кнопкой быть, не получается.Посетуйте как.Спасибо!
    Код:
     
     #include <GUIConstantsEx.au3>
     #include <WindowsConstants.au3>
     #include <FileConstants.au3>
     GUICreate("GUI_DRAG_PICTURE", 546, 215, 268, 174, -1, BitOR($WS_EX_ACCEPTFILES,$WS_EX_WINDOWEDGE))
        $idFile2 = GUICtrlCreateInput("", 18, 99, 300, 21)
        GUICtrlSetState(-1, $GUI_DROPACCEPTED)
        $Pic1 = GUICtrlCreatePic( GUICtrlRead($idFile2), 395, 48, 108, 92)
        GUICtrlCreateGroup("Preview", 380, 24, 137, 137)
    $Button1 = GUICtrlCreateButton("...", 328, 96, 35, 23)
        GUISetState(@SW_SHOW)
     While 1
      $msg = GUIGetMsg ( )
        Switch $msg
            Case $GUI_EVENT_CLOSE
                Exit
            Case $GUI_EVENT_DROPPED
                GUICtrlSetImage ( $Pic1, @GUI_DRAGFILE )
            Case $Button1
       $idFile2 = FileOpenDialog("Please,choose a picture",  ".\", "Images (*.jpg;*.bmp)")
       GUICtrlCreateInput( $idFile2, 18, 99, 300, 21)
       $Pic1 = GUICtrlCreatePic(  $idFile2, 395, 48, 108, 92)
      EndSwitch
    WEnd
     

    Всего записей: 1265 | Зарегистр. 11-09-2005 | Отправлено: 08:00 22-02-2015
    AZJIO



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    jekov
    А если картинка имеет другой размер?
    Если FileOpenDialog будет отменён? При отмене нужно делать отмену продолжения кода (смотри пример в справке к этой функции)

    Цитата:
    А вот ,как с кнопкой быть

    Вместо создания очередного GUICtrlCreatePic сделать GUICtrlSetImage.
     
    Зачем GUICtrlCreatePic( GUICtrlRead($idFile2)... при старте GUI? По умолчанию инпут пустой соответсвенно в GUICtrlCreatePic(""...) должен быть просто пустым. А если вставить картинку по умолчанию то использовать GUICtrlSetImage, потому что если сразу ввести путь то GUICtrlSetImage потом вроде имеет проблему.
     
    Чтобы подогнать картинку по указанному размеру в GUICtrlCreatePic использую пример в моей коллекции скриптов по адресу "мои скрипты AZJIO/!!!мои примеры/_ImageResize".

    Всего записей: 4409 | Зарегистр. 03-05-2006 | Отправлено: 12:34 22-02-2015 | Исправлено: AZJIO, 12:36 22-02-2015
    jekov



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

    Цитата:
    Зачем GUICtrlCreatePic( GUICtrlRead($idFile2)... при старте GUI? По умолчанию инпут пустой соответсвенно в GUICtrlCreatePic(""...) должен быть просто пустым. А если вставить картинку по умолчанию то использовать GUICtrlSetImage, потому что если сразу ввести путь то GUICtrlSetImage потом вроде имеет проблему.

    Не проблема проверить на пустой файл и resize  нужного размера. Нужно было организовать GUICtrlCreateInput , что бы  воспринимал(и отображал) перетаскивание файла в строку ввода, либо выбором файла кнопкой.Как то так:
    Код:
     
     #include <GUIConstantsEx.au3>
     #include <WindowsConstants.au3>
     #include <FileConstants.au3>
     GUICreate("GUI_DRAG_PICTURE", 546, 215, 268, 174, -1, BitOR($WS_EX_ACCEPTFILES,$WS_EX_WINDOWEDGE))
        $idFile2 = GUICtrlCreateInput("", 18, 99, 300, 21)
        GUICtrlSetState(-1, $GUI_DROPACCEPTED)
        $Pic1 = GUICtrlCreatePic( GUICtrlRead($idFile2), 395, 48, 108, 92)
        GUICtrlCreateGroup("Preview", 380, 24, 137, 137)
    $Button1 = GUICtrlCreateButton("...", 328, 96, 35, 23)
        GUISetState(@SW_SHOW)
     While 1
      $msg = GUIGetMsg ( )
        Switch $msg
            Case $GUI_EVENT_CLOSE
                Exit
            Case $GUI_EVENT_DROPPED
                GUICtrlSetImage ( $Pic1, @GUI_DRAGFILE )
            Case $Button1
       $idFile3 = FileOpenDialog("Please,choose a picture",  ".\", "Images (*.jpg;*.bmp)")
       GUICtrlSetData($idFile2, $idFile3)
       GUICtrlSetImage ( $Pic1, $idFile3 )
      EndSwitch
    WEnd

    Всего записей: 1265 | Зарегистр. 11-09-2005 | Отправлено: 13:11 22-02-2015 | Исправлено: jekov, 19:27 22-02-2015
    Artem_Butenko



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Ребята, возник такой вопрос, как определить букву диска (и записать в переменную) с которого запущен скрипт, при этом, если этот диск не является флеш-накопителем, завершить работу скрипта.

    Всего записей: 711 | Зарегистр. 19-02-2008 | Отправлено: 20:17 26-02-2015 | Исправлено: Artem_Butenko, 20:18 26-02-2015
    NIKZZZZ



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

    Код:
    $sWorkDrive=StringLeft(@ScriptDir,3)
    If Not DriveGetType($sWorkDrive)="Removable" Then Exit

     
     
    Добавлено:
    Задача не совсем понятна, если важен запуск только с USB, независимо от типа накопителя, он может быть и внутренним

    Код:
    $sWorkDrive=StringLeft(@ScriptDir,3)
    If Not DriveGetType($sWorkDrive,3)="Usb" Then Exit  

     

    Всего записей: 5365 | Зарегистр. 08-02-2006 | Отправлено: 21:28 26-02-2015
    Skif_off

    Gold Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    comrades, набросал как-то такой скрипт для управления утилитой Clipboardic, как можно прикрутить возможность скрывать активное окно Clipboardic нажатие клавиши Esc? Ни разу не делал горячих клавиш
     
    P.S. Фукнция __CopyClipToClipboard() нужна, чтобы копировать запись мышкой, т.к. в Clipboardic есть только один способ: ткнуть мышкой в пункт записи и нажать Enter на клавиатуре.

    Всего записей: 6473 | Зарегистр. 28-01-2008 | Отправлено: 00:54 02-03-2015
    SLIDER999

    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Скажите пожалуйста, как сделать, чтоб не появлялось окно:

    Пробовал отслеживать окно и нажимать кнопку, но что-то не получилось.

    Всего записей: 261 | Зарегистр. 16-03-2005 | Отправлено: 07:34 06-03-2015 | Исправлено: SLIDER999, 07:35 06-03-2015
    Sphinx114



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Подскажите, в autoit скрипте используется функция runas, которая запускает определённую программу от админа, скрипт сконвертирован в exe. Я правильно понимаю, что вытащить пароль админа из сконвертированного в exe скрипта невозможно? Заранее спасибо.

    Всего записей: 1201 | Зарегистр. 26-03-2011 | Отправлено: 13:31 06-03-2015
       

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