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

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



    Advanced Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    Знатоки,может кто сталкивался,как вместить URL линк в MsgBox ,хотя шастуя по форуму ,набрел тока http://www.autoitscript.com/forum/topic/70754-link-in-a-msgbox/page__view__findpost__p__518182

    Код:
    #include <IE.au3>
    $URL = "http://www.autoitscript.com"
    $answer = MsgBox(68, "Visit", $URL)
        If $answer = 6 Then
            $oIE = _IECreate ($URL, 0)
            Exit
        EndIf
    Exit

    но ведь, совсем не то.Спасибо!

    Всего записей: 1263 | Зарегистр. 11-09-2005 | Отправлено: 23:38 14-08-2011 | Исправлено: jekov, 23:43 14-08-2011
    ynbIpb



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Чтоб линк был кликабельный?
    Нужно создавать свою имитацию месаджбокса. Рисовать Гуй и там всё что угодно.

    Всего записей: 1645 | Зарегистр. 01-05-2006 | Отправлено: 23:48 14-08-2011
    jekov



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

    Цитата:
    Чтоб линк был кликабельный?  

    конечно.Хоть можно как-то , казалось никак.

    Всего записей: 1263 | Зарегистр. 11-09-2005 | Отправлено: 00:27 15-08-2011
    ynbIpb



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    jekov, ну как-то так (грубая зарисовка):
    Код:
    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
     
    $hGui = GUICreate("Form1", 326, 289, 192, 124)
    $hButton = GUICtrlCreateButton("показать Месаджбокс", 70, 232, 175, 25)
    GUISetState(@SW_SHOW)
     
    While 1
        $nMsg = GUIGetMsg()
        Switch $nMsg
            Case $GUI_EVENT_CLOSE
                Exit
            Case
    $hButton
                GUISetState (@SW_DISABLE, $hGui); блокируем основное окно
                _msgboxurl(); показываем месаджбокс
                GUISetState (@SW_ENABLE, $hGui); снимаем блокировку с окна
     
        EndSwitch
    WEnd
     
    Func
    _msgboxurl(); функция отображаения месаджбокса
        $Form1 = GUICreate("заголовок", 433, 105)
        $Button1 = GUICtrlCreateButton("Ok", 160, 64, 75, 25)
        $Label1 = GUICtrlCreateLabel("Всякий разный текст...", 16, 8, 396, 17)
        $Label2 = GUICtrlCreateLabel("http://autoit-script.ru", 120, 32, 180, 17)
        GUICtrlSetColor ($Label2, 0x0707BA)
        GUISetState(@SW_SHOW, $Form1)
     
        While 1
            $nMsg = GUIGetMsg(1)
            Switch $nMsg[0]
                Case $GUI_EVENT_CLOSE
                    If $nMsg[1]=$Form1 Then ExitLoop
                Case
    $Label2
                    ShellExecute ( "http://autoit-script.ru")
                Case $Button1
                    ExitLoop
            EndSwitch
        WEnd

        GUIDelete ($Form1)
    EndFunc

    Всего записей: 1645 | Зарегистр. 01-05-2006 | Отправлено: 14:10 15-08-2011 | Исправлено: ynbIpb, 14:24 15-08-2011
    madmasles

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    ynbIpb,
    Я обычно так делаю:
    Код:
    ;...
    $Label2 = GUICtrlCreateLabel('http://autoit-script.ru', 120, 32, 180, 17)
    GUICtrlSetColor(-1, 0x0000FF)
    GUICtrlSetFont(-1, -1, -1, 6)
    GUICtrlSetCursor(-1, 0)
    GUICtrlSetTip(-1, 'Перейти по ссылке')
    ;...

    Всего записей: 1277 | Зарегистр. 25-09-2008 | Отправлено: 15:49 15-08-2011 | Исправлено: madmasles, 15:50 15-08-2011
    REEAL_CrAzY

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Здравствуйте, уважаемые. Может кто подскажет, есть ли функция вроде Random(), только отвечающая за буквы\служебные символы. Например, я хочу сгенерыровать случайную последовательность символов. Что-то вроде  
    $a = random (0,9)
    $b = random (0,9)
    $c = random ("A","z") ; Должно сгенерировать случайную букву английского языка.
     
    MsgBox (0,"",$a & $b & $c) ;чтобы увидеть, что получилось
     
    Вот именно аналог "random ("A","z")" я  ищу.
     
    P.S. И еще, давно хотелось узнать, что такое длл, с чем его едят и как юзают в автоит. Дайте толковый ман какой-нибудь по длл плиз.  
     
    P.P.S. МОжно ли на автоит прогать с OpenGL? Если да, то простейшие примеры, либо ман, пожалуйста, в студию.

    Всего записей: 42 | Зарегистр. 24-04-2011 | Отправлено: 17:35 15-08-2011 | Исправлено: REEAL_CrAzY, 18:13 15-08-2011
    AZJIO



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    REEAL_CrAzY
    random - легко. делаешь цифровой рандом от 1 до 26. И делаешь массив содержащий буквы. Вытаскиваешь букву по индеку массива.

    Код:
    $a=StringSplit('qwertyuiopasdfghjklzxcvbnm', '')
    $d=Random(1, 26, 1)
    MsgBox(0, 'Message', $a[$d])

    Всего записей: 4407 | Зарегистр. 03-05-2006 | Отправлено: 18:58 15-08-2011 | Исправлено: AZJIO, 19:01 15-08-2011
    madmasles

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    REEAL_CrAzY,
    Или так:
    Код:
    $iLen = 15 ;длина набора
    $sString = ''
    For $i = 1 To $iLen
        Switch Random(1, 3, 1)
            Case 1
                $sString &= Chr(Random(48, 57, 1)) ;0-9
            Case 2
                $sString &= Chr(Random(65, 90, 1)) ;A-Z
            Case 3
                $sString &= Chr(Random(97, 122, 1)) ;a-z
        EndSwitch
    Next
    MsgBox(64, 'Info', $sString)

    Всего записей: 1277 | Зарегистр. 25-09-2008 | Отправлено: 21:49 15-08-2011
    ubian



    Advanced Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    есть ли какой небудь способ сделать скриншот программы и сохранить его по пути прописанного в файле .txt или .INS находящегося примерно C:\Folder\save.INS. Очень нужно...

    Всего записей: 623 | Зарегистр. 22-07-2011 | Отправлено: 23:27 15-08-2011
    madmasles

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    ubian
    Цитата:
    способ сделать скриншот программы
    То есть не всего экрана, а конкретного окна?
     
    Попробуйте так:
    Код:
    #include <ScreenCapture.au3>
     
    $sFileWithPath = 'C:\Folder\save.INS';путь к файлу, в котором прописан путь к папке сохранения скриншота
    $sTitle = '[Title:Ad Muncher Configuration; Class:#32770]'; параметры окна для скриншота
     
    If FileExists($sFileWithPath) Then
        $sPath = FileRead($sFileWithPath)
        If Not FileExists($sPath) Or Not StringInStr(FileGetAttrib($sPath), 'D') Then
            $sPath = @MyDocumentsDir
        EndIf
    Else
        $sPath = @MyDocumentsDir
    EndIf
    ;если файла с путем нет или в нем прописана не существующая папка, то сохраняем в Мои документы
    $sPath &= '\' & @MDAY & '_' & @MON & '_' & @HOUR & '_' & @MIN & '_' & @SEC & '.png'
    $hWin = WinGetHandle($sTitle)
    If $hWin Then
        _ScreenCapture_CaptureWnd($sPath, $hWin)
    Else
        ;Если окна нет, то делаем скриншот всего экрана.
        _ScreenCapture_Capture($sPath)
    EndIf

     

    Всего записей: 1277 | Зарегистр. 25-09-2008 | Отправлено: 00:07 16-08-2011 | Исправлено: madmasles, 01:09 16-08-2011
    LaVas_ki

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    ubian
    я использую любой захватыватель экрана и посылаю ему глобальную горячую кнопку из скрипта
    настроек у них больше (например picpick)
    а стоп! txt не учел
    ну все равно - у выше приведеной программы путь лежит в ини открытый
    AutoSaveFolder=D:\
    можно запросто менять скриптом

    Всего записей: 1464 | Зарегистр. 03-08-2003 | Отправлено: 08:46 16-08-2011 | Исправлено: LaVas_ki, 08:53 16-08-2011
    ubian



    Advanced Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    madmasles
    да и ещё можно чтобы файл dir.INS (где прописан путь для сохранения) лежал в корневой директории и название было указано в файле name.INS, который тоже лежит в корневой директории

    Всего записей: 623 | Зарегистр. 22-07-2011 | Отправлено: 14:50 16-08-2011
    LaVas_ki

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

    Цитата:
    #include <ScreenCapture.au3>  

    а где описание этих фукций? в хелпе нет ничего

    Всего записей: 1464 | Зарегистр. 03-08-2003 | Отправлено: 15:12 16-08-2011
    madmasles

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    ubian
    Цитата:
    чтобы файл dir.INS (где прописан путь для сохранения) лежал в корневой директории и название было указано в файле name.INS, который тоже лежит в корневой директории
    Ничего не понял.
     
    LaVas_ki
    Цитата:
    в хелпе нет ничего
    В английской справке посмотрите, все в ней есть.

    Всего записей: 1277 | Зарегистр. 25-09-2008 | Отправлено: 16:01 16-08-2011 | Исправлено: madmasles, 16:03 16-08-2011
    LaVas_ki

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    там и смотрю - нет
    имеется ввиду оффлайн хелп с программой

    Всего записей: 1464 | Зарегистр. 03-08-2003 | Отправлено: 16:27 16-08-2011
    madmasles

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    LaVas_ki
    Цитата:
    там и смотрю - нет
    Справка к 3.3.6.1


    Всего записей: 1277 | Зарегистр. 25-09-2008 | Отправлено: 16:43 16-08-2011
    LaVas_ki

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    хочу сделать панельку с кнопками:
    1 как ее сделать без заголовка, но что б можно было перетаскивать? обычно таскается за заголовок (Title) а без него как прибитое
    2 есть ли способ получить координаты подобного окна не используя WinGetPos, а обращаясь к результату фукции $Form1 = GUICreate(.... что б исключить случайно совпадение title какого нибудь другого окна (в браузерах иногда такое понапишут)
     
    Добавлено:
    madmasles
    спасибо нашел

    Всего записей: 1464 | Зарегистр. 03-08-2003 | Отправлено: 16:43 16-08-2011
    madmasles

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    LaVas_ki
    Цитата:
    как ее сделать без заголовка, но что б можно было перетаскивать?

    Код:
    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    #include <StaticConstants.au3>
    #include <Array.au3>
     
    Opt('GUICloseOnESC', 0)
     
    $hGui = GUICreate('Opera', 250, 200, -1, -1, $WS_POPUPWINDOW, BitOR($WS_EX_TOOLWINDOW, $WS_EX_TOPMOST))
    GUICtrlCreateLabel('Таскайте окно за любое место', 22, 50, 200, 20, $SS_CENTER, $GUI_WS_EX_PARENTDRAG)
    GUICtrlCreateLabel('Ctrl+1 - выход', 22, 90, 200, 20, $SS_CENTER, $GUI_WS_EX_PARENTDRAG)
    $nButton = GUICtrlCreateButton('', 0, 0, 1, 1)
    GUICtrlSetState(-1, $GUI_HIDE)
    Dim $AccelKeys[1][2] = [['^1', $nButton]]
    GUISetAccelerators($AccelKeys)
    $nButton_1 = GUICtrlCreateButton('WinGetPos', 75, 130, 100, 30)
    GUISetState()
    GUIRegisterMsg($WM_NCHITTEST, 'WM_NCHITTEST')
    While 1
        WinSetOnTop($hGui, '', 1)
        $nMsg = GUIGetMsg()
        Switch $nMsg
            Case $GUI_EVENT_CLOSE, $nButton
                Exit
            Case $nButton_1
                $aPos = WinGetPos($hGui)
                WinSetOnTop($hGui, '', 0)
                _ArrayDisplay($aPos, $hGui)
                While WinExists('"' & $hGui & '"')
                    Sleep(10)
                WEnd
                WinSetOnTop($hGui, '', 1)
        EndSwitch
    WEnd
     
    Func WM_NCHITTEST($hWnd, $msg, $wParam, $lParam)
        Local $iProc = DllCall('user32.dll', 'int', 'DefWindowProc', 'hwnd', $hWnd, 'int', _
                $msg, 'wparam', $wParam, 'lparam', $lParam)
        If $iProc[0] = $HTCLIENT Then Return $HTCAPTION
        Return $GUI_RUNDEFMSG
    EndFunc   ;==>WM_NCHITTEST

    Всего записей: 1277 | Зарегистр. 25-09-2008 | Отправлено: 17:06 16-08-2011 | Исправлено: madmasles, 17:50 16-08-2011
    LaVas_ki

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    если два окна с параметром "всегда сверху" перекрываются, то они работают уже как обычные окна относительно друг друга
    можно ли задать скрипту параметр, что б окно было всегда-всегда сверху))))
     
    ну или хотя б периодически себя поднимало
    по идее тогда оно будет снова оказываться на самом верху в таком случае, как свежее

    Всего записей: 1464 | Зарегистр. 03-08-2003 | Отправлено: 17:38 16-08-2011
    madmasles

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    LaVas_ki
    Цитата:
    что б окно было всегда-всегда сверху
    Добавил это в код.

    Всего записей: 1277 | Зарегистр. 25-09-2008 | Отправлено: 17:51 16-08-2011
       

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