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

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

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Есть ли аналог WSH-функции GetAbsolutePathName?
    Нужно получать полный путь по относительному пути.
     
    И заодно аналог WSH-функции ExpandEnvironmentStrings?
    Нужно из строки содержащей путь к файлу с переменными окружения получить полный путь с раскрытыми переменными.

    Всего записей: 723 | Зарегистр. 08-10-2002 | Отправлено: 03:57 09-08-2015 | Исправлено: SLasH, 04:00 09-08-2015
    NIKZZZZ



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

    Код:
    GetAbsolutePathName - FileGetLongName()
    ExpandEnvironmentStrings - EnvGet()

    Есть еще возможность с помощью opt('ExpandEnvStrings',1) переменные окружения будут автоматически раскрываться.

    Всего записей: 5365 | Зарегистр. 08-02-2006 | Отправлено: 05:31 09-08-2015
    SLasH

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    NIKZZZZ
    Нет, это не аналоги.
    FileGetLongName - возвращает длинный путь из пути 8.3
    EnvGet - возвращает значение переменной
     
    FSO.GetAbsolutePathName - раскрывает относительные пути в абсолютные. "C:\Windows\..\" -> "C:\"
    WSH.ExpandEnvironmentStrings - раскрывает все переменные в строке. "%WinDir%\notepad.exe" -> "C:\Windows\notepad.exe"
     
    Смотрите сами...
    test.vbs:

    Код:
    Dim oWSH: Set oWSH = WScript.CreateObject("WScript.Shell")
    Dim oFSO: Set oFSO = CreateObject("Scripting.FileSystemObject")
     
    Call MsgBox("notepad: "&oWSH.ExpandEnvironmentStrings("%WinDir%\notepad.exe")&vbCrLf& _
        "bootmgr: "&oFSO.GetAbsolutePathName("C:\Windows\..\bootmgr") _
        , vbOK, WScript.ScriptName _
    )
    Set oFSO = Nothing
    Set oWSH = Nothing

    test.au3:

    Код:
    MsgBox(0, @ScriptName, "notepad: "&EnvGet("%WinDir%\notepad.exe")&@CRLF& _
        "bootmgr: "&FileGetLongName("C:\Windows\..\bootmgr") _
    )

    Всего записей: 723 | Зарегистр. 08-10-2002 | Отправлено: 12:49 09-08-2015
    NIKZZZZ



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

    Цитата:
    Нет, это не аналоги.

    Правильнее не полные аналоги, вот пример.

    Код:
    MsgBox(0, 'Test1', "notepad: " & EnvGet("WinDir") & "\notepad.exe" & @CRLF & _
            "bootmgr: " & FileGetLongName("C:\bootmgr") & @CRLF & _
            "script: " & FileGetLongName(@ScriptName,1) _
            )
     
    opt('ExpandEnvStrings',1)
    MsgBox(0, 'Test2', "notepad: %WinDir%\notepad.exe" & @CRLF & _
            "bootmgr: " & FileGetLongName("%SystemDrive%\bootmgr") & @CRLF & _
            "script: " & FileGetLongName(@ScriptName,1) _
            )

    Всего записей: 5365 | Зарегистр. 08-02-2006 | Отправлено: 13:33 09-08-2015
    AZJIO



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

    Всего записей: 4560 | Зарегистр. 03-05-2006 | Отправлено: 15:11 09-08-2015
    SLasH

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    AZJIO
    Благодарю!
    _PathFull - то, что надо. Аналог WSH-функции GetAbsolutePathName
    А с переменными окружения значит нужно opt('ExpandEnvStrings',1) - спасибо NIKZZZZ
    Но всё-таки хотелось бы функцию типа ExpandEnvironmentStrings. Или сделать свою функцию, где будет переключаться opt('ExpandEnvStrings',1) туда обратно?

    Всего записей: 723 | Зарегистр. 08-10-2002 | Отправлено: 09:56 10-08-2015 | Исправлено: SLasH, 09:58 10-08-2015
    bredonosec



    Platinum Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    вопрос совершенно чайницкий, ввиду того, что не знаю, этой ли программой пользоваться для решения задачи, или вообще в другую сторону смотреть.
     
    Задача: система документооборота с веб-интерфейсом. Созданная коряво (и модифицировать не только нет доступа, но и низзя). Хотелось бы автоматизировать там действие, состоящее из порядка 20 операций, формата:  
    1) тремя кликами (в фиксированных местах окна) выбрать список недавних документов,  
    2) кликом в фиксированной точке экрана открыть верхний,  
    3) кликом в фиксированной точке открыть редактирование
    4) кликом в нефиксированной точке (но определенное, то же самое поле) открыть поле, вторым кликом убрать один параметр, третьим открыть диалог и четвертым оттуда выбрать другой (пусть даже фиксированный, верхний)
    5) кликом в фиксированной точке экрана открыть выпадающее меню и вторым отметить фиксированный пункт  
    5.1 (возможно повторение операции полем ниже, если есть еще один аналогичный параметр)
    6) кликом в фиксированной точке экрана сохранить.  
    7) кликом в фиксированной точке подписать
    8) кликом в фиксированной точке завершить его.
    - и повтор цикла до окончания списка документов (обработанный из списка удаляется сам)
     
     
    Собсно, интересует, можно-ли как-то вот эти нефиксированные в пространстве поля как-то опознавать и кликать?  
    Если табами обход делать - число табов может меняться (по пути будут параметры, число которых может меняться). Если координатами на экране - аналогично.  
    Представить экземпляр страницы не могу - система документооборота внутренняя...  
     
    А задачу хотелось бы решить, бо процедура занудная (особенно если список большой) и конкурирующая с сизифом по степени бессмысленности.

    Всего записей: 16269 | Зарегистр. 13-02-2003 | Отправлено: 17:30 16-08-2015
    NIKZZZZ



    Gold Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    bredonosec
    Запускаешь Au3Record.exe, выполняешь указанные действия, получаешь скрипт, далее слегка доводишь его ручками.

    Цитата:
    можно-ли как-то вот эти нефиксированные в пространстве поля как-то опознавать и кликать?  

    Au3Info.exe в помощь, сообщит куда кликать.

    Всего записей: 5365 | Зарегистр. 08-02-2006 | Отправлено: 19:34 16-08-2015 | Исправлено: NIKZZZZ, 19:40 16-08-2015
    bredonosec



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

    Цитата:
    Au3Info.exe в помощь, сообщит куда кликать.  

    как процесс должен выглядеть? Читаю ман, но не вижу связи

    Всего записей: 16269 | Зарегистр. 13-02-2003 | Отправлено: 00:16 17-08-2015
    NIKZZZZ



    Gold Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    bredonosec
    Нужно запустить Au3Info.exe, и переместить прицел на окно, по какому нужно кликать, он покажет его параметры, а уж дальше использовать эти параметры для клика.

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

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    bredonosec
    Цитата:
    система документооборота с веб-интерфейсом
    Вряд ли Au3Info.exe что-нибудь покажет. Посмотрите эту тему: Работа с Internet Explorer Server в desktop-приложениях.

    Всего записей: 1277 | Зарегистр. 25-09-2008 | Отправлено: 08:52 17-08-2015 | Исправлено: madmasles, 09:20 17-08-2015
    Kopeheb

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    http://prntscr.com/86i6st скриншот

    Код:
     
    $x1=21
    $y1=100
    $x2=51
    $y2=325
     
    $ym = PixelSearch($x1,$y1,$x2,$y2, 0xFFFf00,1);желтый прямоугольник
    $rzz = PixelSearch($x1,$y1,$x2,$y2, 0xff0000,1); красное ZZ
    $bzz = PixelSearch($x1,$y1,$x2,$y2, 0x0000ff,1);синее ZZ
     

    задача:
    кликнуть по желтому где нет красного ZZ
    т.е. желтый прямоугольник с любым в нем цветом, игнорируя желтый прямоугольник в кторором есть красное.
    месяц уже перелопачиваю, ничего похожего не нашел.
    если решение возможно, поделитесь пожалуйста.
    Спасибо

    Всего записей: 3 | Зарегистр. 19-08-2015 | Отправлено: 20:17 19-08-2015 | Исправлено: Kopeheb, 20:19 19-08-2015
    gvshil

    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Доброго времени суток!
    Прошу помощи:
    не получается прописать в реестре с помощью AutoIt значение REG_SZ вида:
     
    "xxxx"="C:\\xxxx;C:\\Users\\_имя_пользователя\\xxxx"

    Всего записей: 221 | Зарегистр. 30-04-2003 | Отправлено: 10:35 26-08-2015
    NIKZZZZ



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

    Код:
    RegWrite("HKLM\....", "xxxx", "REG_SZ", "C:\xxxx;C:\Users\_имя_пользователя\xxxx")


    Всего записей: 5365 | Зарегистр. 08-02-2006 | Отправлено: 10:52 26-08-2015 | Исправлено: NIKZZZZ, 10:52 26-08-2015
    gvshil

    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Проблема в том, что не прописывается  второе значение ( после ; )
    Да, я пытаюсь использовать переменные.
     

    Код:
    RegWrite('HKEY_CURRENT_USER\Software\...\...\...','XXXX',"REG_SZ",@HomeDrive & '\xxxxx';@HomeDrive & '\' & @UserName & '\xxxxx')

    Всего записей: 221 | Зарегистр. 30-04-2003 | Отправлено: 11:00 26-08-2015 | Исправлено: gvshil, 11:10 26-08-2015
    NIKZZZZ



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

    Код:
    RegWrite('HKEY_CURRENT_USER\Software\...\...\...','XXXX',"REG_SZ",@HomeDrive & '\xxxxx' & ';' & @HomeDrive & '\' & @UserName & '\xxxxx')

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

    Gold Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    gvshil
    Вы же переменную пишете не в кавычках?
    Например, с переменными и макросами:

    Код:
    RegWrite("HKLM\....", "xxxx", "REG_SZ", "C:\" & $sFolderName1 & ";C:\Users\" & @UserName & "\" & $sFolderName2)

    Про амперсанд здесь.
     
    Добавлено:
    Не обновил страницу ещё раз, извиняюсь.

    Всего записей: 6597 | Зарегистр. 28-01-2008 | Отправлено: 11:13 26-08-2015
    gvshil

    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    NIKZZZZ, Skif_off,
    покорнейше благодарю.

    Всего записей: 221 | Зарегистр. 30-04-2003 | Отправлено: 11:25 26-08-2015
    bredonosec



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

    Цитата:
    Запускаешь Au3Record.exe, выполняешь указанные действия, получаешь скрипт,  

    сорри за молчание, а этот рекордер - во всех дистрах есть?  
    Я вижу только это
    madmasles

    Цитата:
    Посмотрите эту тему: Работа с Internet Explorer Server в desktop-приложениях.  

    судя по всему, мне пока на каких-то кошках надо потренироваться - вообще синтаксис не понимаю ((  
    Было б где-то что-то, что можно сначала подредактить, чтоб уловить связь действий и скрипта - было б проще начать..

    Всего записей: 16269 | Зарегистр. 13-02-2003 | Отправлено: 19:42 02-09-2015
    Skif_off

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

    Цитата:
    а этот рекордер - во всех дистрах есть?

    В каталоге Extras.

    Всего записей: 6597 | Зарегистр. 28-01-2008 | Отправлено: 21:30 02-09-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