Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » [решено] Автоматизация Блокнота и подобных приложении

Ответить
Настройки темы
[решено] Автоматизация Блокнота и подобных приложении

Аватара для semiono

Ветеран


Сообщения: 842
Благодарности: 33

Профиль | Отправить PM | Цитировать


Как можно ходить, передвигаться по тексту, выделять вырезать слова и копировать?
Например имеем текст в открытом блокнот. Кто пример показать может?
В закрытом тоже интересно, типа изменить текст внутри файла...

И ещё как можно выделять текст в классах Edit (если я правильно называю), особенно длинные и с пробелами, как фокус поймать?
И вставлять/копировать там тексты?
Если есть различные варианты думаю стоит обсудить?

-------
Полезное сообщение


Отправлено: 13:45, 28-01-2009

 

Аватара для Creat0R

Must AutoIt


Сообщения: 3054
Благодарности: 1009

Профиль | Сайт | Отправить 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)

-------
“Сделай так просто, как возможно, но не проще этого.”... “Ты никогда не решишь проблему, если будешь думать так же, как те, кто её создал.”

Альберт Эйнштейн

P.S «Не оказываю техподдержку через ПМ/ICQ, и по email - для этого есть форум. ©»

http://creator-lab.ucoz.ru/Images/Icons/autoit_icon.png Русское сообщество AutoIt | http://creator-lab.ucoz.ru/Images/Ic...eator_icon.png CreatoR's Lab | http://creator-lab.ucoz.ru/Images/Icons/oac_icon.png Opera AC Community

Это сообщение посчитали полезным следующие участники:

Отправлено: 15:08, 28-01-2009 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Аватара для semiono

Ветеран


Сообщения: 842
Благодарности: 33

Профиль | Отправить PM | Цитировать


Ага. Только с компонентами надо разобираться...
$hEdit = ControlGetHandle("[CLASS:AkelPad2]", "", "RichEdit20A1")
я сначала зделал - RichEdit20A но оказалось так надо RichEdit20A1 не сразу ясно бывает
причём для реализации чего либо, надо свой блокнот паковать на всякий случай

-------
Полезное сообщение


Отправлено: 22:16, 28-01-2009 | #3


Аватара для Creat0R

Must AutoIt


Сообщения: 3054
Благодарности: 1009

Профиль | Сайт | Отправить PM | Цитировать


Цитата semiono:
не сразу ясно бывает »
В AutoIt Info Tool всё ясно:



Наводим на нужный элемент, и копируем данные.

Цитата:
для реализации чего либо, надо свой блокнот паковать на всякий случай
Зачем?

-------
“Сделай так просто, как возможно, но не проще этого.”... “Ты никогда не решишь проблему, если будешь думать так же, как те, кто её создал.”

Альберт Эйнштейн

P.S «Не оказываю техподдержку через ПМ/ICQ, и по email - для этого есть форум. ©»

http://creator-lab.ucoz.ru/Images/Icons/autoit_icon.png Русское сообщество AutoIt | http://creator-lab.ucoz.ru/Images/Ic...eator_icon.png CreatoR's Lab | http://creator-lab.ucoz.ru/Images/Icons/oac_icon.png Opera AC Community


Отправлено: 00:55, 29-01-2009 | #4


Аватара для semiono

Ветеран


Сообщения: 842
Благодарности: 33

Профиль | Отправить PM | Цитировать


Как зачем
Я же в примере показал... у меня например, в системе вместо notepad.exe лежит AkelPad и для удобства с таким же именем. Поэтому если бы кто-то зделал какой-то полезный скрипт то классы бы не совпали!
Следовательно надо свои бинари добавлять для распространения дистрибутивов, чтоб всё надёжно работало...
ну хотя бы genuine notepad.exe положить тем более что он не большой. (хотя это просто совет так как он не касается вопросов топика)

-------
Полезное сообщение


Отправлено: 14:11, 29-01-2009 | #5


Аватара для Creat0R

Must AutoIt


Сообщения: 3054
Благодарности: 1009

Профиль | Сайт | Отправить PM | Цитировать


Цитата semiono:
у меня например, в системе вместо notepad.exe лежит AkelPad и для удобства с таким же именем »
А у меня Notepad2, и я по прежнему могу работать с обычным блокнотом (см. мой пример выше).

Цитата semiono:
если бы кто-то зделал какой-то полезный скрипт то классы бы не совпали »
Я всё ровно не понимаю зачем паковать в скрипт блокнот, кому нужно тот сам пусть правит под себя. А те кто создают полезные скрипты, не должны подстраиваться под всех.

-------
“Сделай так просто, как возможно, но не проще этого.”... “Ты никогда не решишь проблему, если будешь думать так же, как те, кто её создал.”

Альберт Эйнштейн

P.S «Не оказываю техподдержку через ПМ/ICQ, и по email - для этого есть форум. ©»

http://creator-lab.ucoz.ru/Images/Icons/autoit_icon.png Русское сообщество AutoIt | http://creator-lab.ucoz.ru/Images/Ic...eator_icon.png CreatoR's Lab | http://creator-lab.ucoz.ru/Images/Icons/oac_icon.png Opera AC Community


Отправлено: 14:19, 29-01-2009 | #6


Аватара для semiono

Ветеран


Сообщения: 842
Благодарности: 33

Профиль | Отправить PM | Цитировать


Цитата Creat0R:
А у меня Notepad2, и я по прежнему могу работать с обычным блокнотом »
так они же разные:
$hEdit = ControlGetHandle("[CLASS:Notepad]", "", "Edit1")
$hEdit = ControlGetHandle("[CLASS:AkelPad2]", "", "RichEdit20A1")
Возможно Notepad2 и совпадает? Либо он обычно установлен как Program Files и кликается ярлыком?
у меня же %SystemRoot%\system32\notepad.exe - это AkelPad2, так как нет смысла обычный тоже хранить.
Цитата Creat0R:
Я всё ровно не понимаю зачем паковать в скрипт блокнот »
просто иногда в инсталяторе или ещё в какомнибудь "инструменте" бывает удобно использовать au3...
но я на самом деле прежде всего для себя делаю всё, это лишь так рассуждение.

-------
Полезное сообщение


Отправлено: 20:38, 29-01-2009 | #7


Аватара для semiono

Ветеран


Сообщения: 842
Благодарности: 33

Профиль | Отправить 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


Аватара для Creat0R

Must AutoIt


Сообщения: 3054
Благодарности: 1009

Профиль | Сайт | Отправить PM | Цитировать


semiono,
Цитата:
Есть вопросы!
Это уже вроде не на тему блокнота...


Цитата:
у меня же %SystemRoot%\system32\notepad.exe - это AkelPad2
Мой пример вообще проигнорировался? Там же явно указан путь на папку Windows'а, в которой блокнот обычно остаётся оригинальный.

Цитата:
как его потом вставить?
Код: Выделить весь код
$Var1 = ClipGet()
ControlSetText(" T-RackS","","Edit2", $Var1)


Цитата:
без страшных _GUICtrlEdit_SetSel макросов
Это не макросы а функции, и почему они страшные? Можно так, ещё страшнее (извлёк из той же функции):

Код: Выделить весь код
;Выделяем слово Мир
DllCall("User32.dll", "int", "SendMessage", "hwnd", $hEdit, "int", 177, "int", 7, "int", 10) ;177 = $EM_SETSEL

-------
“Сделай так просто, как возможно, но не проще этого.”... “Ты никогда не решишь проблему, если будешь думать так же, как те, кто её создал.”

Альберт Эйнштейн

P.S «Не оказываю техподдержку через ПМ/ICQ, и по email - для этого есть форум. ©»

http://creator-lab.ucoz.ru/Images/Icons/autoit_icon.png Русское сообщество AutoIt | http://creator-lab.ucoz.ru/Images/Ic...eator_icon.png CreatoR's Lab | http://creator-lab.ucoz.ru/Images/Icons/oac_icon.png Opera AC Community

Это сообщение посчитали полезным следующие участники:

Отправлено: 16:39, 30-01-2009 | #9


Аватара для semiono

Ветеран


Сообщения: 842
Благодарности: 33

Профиль | Отправить PM | Цитировать


$Var1 = ClipGet()
ControlSetText(" T-RackS","","Edit2", $Var1)
Вот это другое дело! Спсибо! Я обыскался по хелпу, но не мог найти сам.

Creat0R, я не знаю что там с блокнотом не понятно, хотя это и не важно настолько.
Твой пример, да не работает, и не должен, потому что у меня именно в папке виндоус другой блокнот.
Я его ещё на стадии установки Windows [t13] подменил AkelPad.exe > i386\NOTEPAD.EX_ чтобы уже никогда не париться с неудобным оригинальным блокнотом. Или надо было оставить как раритет?
Цитата Creat0R:
Это не макросы а функции, и почему они страшные? »
Да я новичок и меня всё незнакомое пугает сразу

-------
Полезное сообщение


Отправлено: 18:03, 30-01-2009 | #10



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » [решено] Автоматизация Блокнота и подобных приложении

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Интернет - Закачка с 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




 
Переход