|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » [решено] Автоматизация Блокнота и подобных приложении |
|
|
[решено] Автоматизация Блокнота и подобных приложении
|
Ветеран Сообщения: 842 |
Профиль | Отправить PM | Цитировать Как можно ходить, передвигаться по тексту, выделять вырезать слова и копировать?
Например имеем текст в открытом блокнот. Кто пример показать может? В закрытом тоже интересно, типа изменить текст внутри файла... И ещё как можно выделять текст в классах Edit (если я правильно называю), особенно длинные и с пробелами, как фокус поймать? И вставлять/копировать там тексты? Если есть различные варианты думаю стоит обсудить? |
|
------- Отправлено: 13:45, 28-01-2009 |
Must AutoIt Сообщения: 3054
|
Профиль | Сайт | Отправить PM | Цитировать semiono, В справке есть туториал как раз для блокнота, вы его читали?
Вот простой пример: #include <GuiEdit.au3> ;Запускаем блокнот и ждём его появление Run(@WindowsDir & "\Notepad.exe") WinWait("[CLASS:Notepad]") ;Получаем идентификатор окна блокнота $hNotepad = WinGetHandle("[CLASS:Notepad]") ;Получаем идентификатор Edit-поля в блокноте $hEdit = ControlGetHandle("[CLASS:Notepad]", "", "Edit1") ;Пишем текст ControlSetText($hNotepad, "", "Edit1", "Привет Мир!") Sleep(1000) ;Выделяем слово Мир _GUICtrlEdit_SetSel($hEdit, 7, 10) Sleep(1000) ;Копируем его в буфер обмена $sSelected = ControlCommand($hNotepad, "", "Edit1", "GetSelected") ClipPut($sSelected) |
------- Отправлено: 15:08, 28-01-2009 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Ветеран Сообщения: 842
|
Профиль | Отправить PM | Цитировать Ага. Только с компонентами надо разобираться...
$hEdit = ControlGetHandle("[CLASS:AkelPad2]", "", "RichEdit20A1") я сначала зделал - RichEdit20A но оказалось так надо RichEdit20A1 не сразу ясно бывает причём для реализации чего либо, надо свой блокнот паковать на всякий случай |
------- Отправлено: 22:16, 28-01-2009 | #3 |
Must AutoIt Сообщения: 3054
|
Профиль | Сайт | Отправить PM | Цитировать Цитата semiono:
Наводим на нужный элемент, и копируем данные. Цитата:
|
||
------- Отправлено: 00:55, 29-01-2009 | #4 |
Ветеран Сообщения: 842
|
Профиль | Отправить PM | Цитировать Как зачем
Я же в примере показал... у меня например, в системе вместо notepad.exe лежит AkelPad и для удобства с таким же именем. Поэтому если бы кто-то зделал какой-то полезный скрипт то классы бы не совпали! Следовательно надо свои бинари добавлять для распространения дистрибутивов, чтоб всё надёжно работало... ну хотя бы genuine notepad.exe положить тем более что он не большой. (хотя это просто совет так как он не касается вопросов топика) |
|
------- Отправлено: 14:11, 29-01-2009 | #5 |
Must AutoIt Сообщения: 3054
|
Профиль | Сайт | Отправить PM | Цитировать Цитата semiono:
Цитата semiono:
|
||
------- Отправлено: 14:19, 29-01-2009 | #6 |
Ветеран Сообщения: 842
|
Профиль | Отправить PM | Цитировать Цитата Creat0R:
$hEdit = ControlGetHandle("[CLASS:Notepad]", "", "Edit1") $hEdit = ControlGetHandle("[CLASS:AkelPad2]", "", "RichEdit20A1") Возможно Notepad2 и совпадает? Либо он обычно установлен как Program Files и кликается ярлыком? у меня же %SystemRoot%\system32\notepad.exe - это AkelPad2, так как нет смысла обычный тоже хранить. Цитата Creat0R:
но я на самом деле прежде всего для себя делаю всё, это лишь так рассуждение. |
||
------- Отправлено: 20:38, 29-01-2009 | #7 |
Ветеран Сообщения: 842
|
Профиль | Отправить PM | Цитировать Есть вопросы!!!
Вот клик по кнопке которая копирует машинный ID в буфер ControlClick("Product Authorization Wizard","","Button2", "left", 1, 37, 11) Но как его потом вставить? ControlSetText(" T-RackS","","Edit2",$var1) Ведь нельзя же так $var1 = ControlClick("Product Authorization Wizard","","Button2", "left", 1, 37, 11) С другой стороны нечто такое тоже нельзя почему-то $var1 = ? или $var1 = * // как тут неинициализированные данные получить? или что вообще делать! Вслучае $var1 = ControlGetText было бы проще, однако у нас сразу готов результат кликом по бутону, но буфер обмена почему-то игнорируется, либо я не знаю как из него вставить! (хочу заметить, что тут ещё необходимо переключение между окнами, тоесть это окна двух приложений между которыми происходит обмен) Одним словом надо вставить "буфер обмена" в переменную которая не была объявленна, или же что правильней неинициализированна? Или что-то другое зделать? ---- А вот это не бывает попроще - Выделяем слово Мир _GUICtrlEdit_SetSel($hEdit, 7, 10) без страшных _GUICtrlEdit_SetSel макросов и хендлов!? Типа просто ControlGetText("title", "text"... и тут указатели? |
------- Последний раз редактировалось semiono, 30-01-2009 в 00:52. Отправлено: 00:38, 30-01-2009 | #8 |
Must AutoIt Сообщения: 3054
|
Профиль | Сайт | Отправить PM | Цитировать semiono,
Цитата:
Цитата:
Цитата:
Цитата:
|
||||
------- Отправлено: 16:39, 30-01-2009 | #9 |
Ветеран Сообщения: 842
|
Профиль | Отправить PM | Цитировать $Var1 = ClipGet()
ControlSetText(" T-RackS","","Edit2", $Var1) Вот это другое дело! Спсибо! Я обыскался по хелпу, но не мог найти сам. Creat0R, я не знаю что там с блокнотом не понятно, хотя это и не важно настолько. Твой пример, да не работает, и не должен, потому что у меня именно в папке виндоус другой блокнот. Я его ещё на стадии установки Windows [t13] подменил AkelPad.exe > i386\NOTEPAD.EX_ чтобы уже никогда не париться с неудобным оригинальным блокнотом. Или надо было оставить как раритет? Цитата Creat0R:
|
|
------- Отправлено: 18:03, 30-01-2009 | #10 |
|
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Интернет - Закачка с rapidshark и ему подобных | Karantin | Программное обеспечение Windows | 9 | 06-06-2009 21:21 | |
атоматическая установка Office 2003 и ему подобных | Gradus | Автоматическая установка приложений | 1 | 29-01-2009 14:47 | |
Интерфейс - [решено] Переустановка стандартного блокнота | black_dante | Microsoft Windows 2000/XP | 2 | 15-01-2009 20:23 | |
[решено] настройки блокнота | dima1981 | Хочу все знать | 5 | 25-08-2008 21:04 | |
Тормозит сетевая печать из блокнота | Yuriy40 | Microsoft Windows NT/2000/2003 | 0 | 01-09-2006 12:08 |
|