Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   AutoIt (http://forum.oszone.net/forumdisplay.php?f=103)
-   -   [решено] Команда "paste" или "ctrl+v" в окне программы. (http://forum.oszone.net/showthread.php?t=272492)

maxd2007 20-11-2013 22:53 2258847

Команда "paste" или "ctrl+v" в окне программы.
 
Всем привет, помогите решить такую проблему: есть программа, при каждом ее запуске требует логин и пароль (запоминать не хочет), хочется в идеале что бы скрипт запускал программу, ждал появления окна и вставлял логин и пароль, но можно и руками запустить программу а запуск скрипта вобьет логин и пароль. В буфер взять текст получается а вот как вставить не пойму (даже имитацию нажатия мышки в определенное место сделал т.к окно открывается все по середине экрана независимо от того где закрыл, но вот как вставить не пойму =( ). Извиняюсь если непонятно изъяснился 0_0.

Iska 20-11-2013 23:36 2258878

Цитата:

Цитата maxd2007
есть программа, »

Какая именно?

Стоит опробовать AutoIt.

maxd2007 21-11-2013 00:19 2258903

Origin ( https://www.origin.com/ru-ru/download ) - извиняюсь что сразу не написал, ступил

Я так понимаю Вы имели ввиду это http://www.autoitscript.com/site/autoit/downloads/ ?

maxd2007 21-11-2013 00:49 2258923

Странно как то, читаю мануал по AutoIt и там прям есть пример скрипта
Run("notepad.exe")
WinWaitActive("Untitled - Notepad")
Send("This is some text.")
но он не работает - в смысле открывается notepad но там пусто, This is some text. не появляется в нем (читаю в оригинале так что может где то что то упустил, на русском там лежит но при открытии там пусто, что странно т.к фаил весит 1,3 Мб).
Интересная вещь, напоминает MortScript =)

Iska 21-11-2013 03:02 2258952

Цитата:

Цитата maxd2007
там прям есть пример скрипта

WinWaitActive("Untitled - Notepad")

но он не работает »

maxd2007, а у Вас пустой Блокнот имеет какой заголовок?

maxd2007 21-11-2013 10:06 2259047

Вложений: 1
Нет, просто безымянный блокнот.

Iska 21-11-2013 14:16 2259186

Цитата:

Цитата maxd2007
просто безымянный блокнот. »

Вот и замените в примере для англоязычной версии Блокнота параметр, указывающий заголовок окна для поиска с «Untitled - Notepad» на тот, который наличествует в Вашей локализованной версии. И не «просто безымянный блокнот», а в точности до буковки (каковые можно получить посредством утилиты «Au3Info.exe»/«Au3Info_x64.exe»).

maxd2007 23-11-2013 10:15 2260306

Извиняюсь, что пропал. Когда я сделал так:
Run("notepad.exe")
WinWaitActive("[CLASS:Notepad]")
Send("This is some text.")
то все заработало. А где-нибудь можно посмотреть список команд с кратким описание их, как это реализовано в командной строке, при вызове команды "Help"?

Iska 23-11-2013 10:40 2260319

Цитата:

Цитата maxd2007
А где-нибудь можно посмотреть список команд с кратким описание их, как это реализовано в командной строке, при вызове команды "Help"? »

В документации. С полным описанием. Перечень будет в окне оглавления справа.

maxd2007 24-11-2013 10:06 2260738

Спасибо. А еще такой вопрос: AutoIt может править фаилы в шестнадцатеричной системе (незнаю просто как еще это назвать), т.е. есть 100 фаилов и во всех нужно поправить по адресу 000001D5 1E на 1С, возможно ли это сделать стандартными средствами или придется прибегать к каким то допам?

Iska 24-11-2013 11:06 2260756

Цитата:

Цитата maxd2007
править фаилы в шестнадцатеричной системе (незнаю просто как еще это назвать) »

Назовите бинарными файлами, не ошибётесь (в противовес текстовым).

Цитата:

Цитата maxd2007
возможно ли это сделать стандартными средствами »

Возможно. FileOpen(), FileSetPos(), FileWrite(), FileClose().

maxd2007 25-11-2013 13:27 2261308

Спасибо огромное за советы, сделал скрипт так:
MouseClick("left", 938, 28, 1)
Send("Login")
MouseClick("left", 938, 8, 1)
Send("Pass")
Может со временем усложню =)
PS
И еще большее спасибо за AutoIT, очень полезная и удобная вещь =).

Iska 25-11-2013 18:30 2261467

maxd2007, «MouseClick()» и «Send()» — это последнее, что стоило использовать. Вы пробовали «WinWait()», «WinActivate()», «ControlSetText()»/«ControlSend()», «ControlClick()»?

maxd2007 29-11-2013 11:42 2263678

Iska,
Спасибо за совет, обязательно попробую, это сделал на скорую руку - это так для развлечения, а в дальнейшем может и для работы прикручу, что бы каждый раз не логиниться, так что Ваш метод обязательно попробую.


Время: 13:05.

Время: 13:05.
© OSzone.net 2001-