Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / C++ [игнор отключен] [закрыт для гостей] / виртуальный редактор / 12 сообщений из 12, страница 1 из 1
22.09.2007, 16:50:53
    #34819536
JustVas
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
виртуальный редактор
Есть такая задачка:

есть программа, недоступная для изменения, допустим, это Notepad. Надо сделать программку, которая сможет: 1) считывать текст из Notepad'а, 2) посылать туда текст, чтобы он появлялся в окне редактирования, а также все стирать.

Это возможно? Намекните, pls, в каком направлении двигаться.
...
Рейтинг: 0 / 0
22.09.2007, 19:53:28
    #34819603
Cerebrum
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
виртуальный редактор
JustVasЕсть такая задачка:

есть программа, недоступная для изменения, допустим, это Notepad. Надо сделать программку, которая сможет: 1) считывать текст из Notepad'а, 2) посылать туда текст, чтобы он появлялся в окне редактирования, а также все стирать.

Это возможно? Намекните, pls, в каком направлении двигаться.
SendMessage, WM_GETTEXT, SETTEXT
...
Рейтинг: 0 / 0
22.09.2007, 22:57:10
    #34819665
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
виртуальный редактор
Cerebrum пишет:
> SendMessage, WM_GETTEXT, SETTEXT

Зошибизь, только оно усе в адресном пространстве
другого процесса. Да и с SendMessage проблемы могут быть -
локи всякие.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
23.09.2007, 14:58:06
    #34819985
Cerebrum
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
виртуальный редактор
MasterZiv
Cerebrum пишет:
> SendMessage, WM_GETTEXT, SETTEXT

Зошибизь, только оно усе в адресном пространстве
другого процесса. Да и с SendMessage проблемы могут быть -
локи всякие.
Posted via ActualForum NNTP Server 1.4
ты не поверишь, но у меня работает!
...
Рейтинг: 0 / 0
23.09.2007, 15:32:01
    #34820008
ErV
ErV
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
виртуальный редактор
MasterZiv wrote:

> Зошибизь, только оно усе в адресном пространстве
> другого процесса. Да и с SendMessage проблемы могут быть -
> локи всякие.
Если HWnd блокнота известен (а его можно найти), то проблем вообще-то
быть не должно. Насчет локов - можно PostMessage использовать.

Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
23.09.2007, 19:16:25
    #34820165
JustVas
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
виртуальный редактор
Если HWnd блокнота известен (а его можно найти), то проблем вообще-то
быть не должно
Все работает и все бы хорошо, да вот только эти SendMessage и PostMessage читают и пишут не содержимое блокнота, а заголовок окна :( Например, вот код, который даже есть в msdn, и который должен читать содержимое, а читает заголовок:
Код: plaintext
1.
2.
TCHAR buf[ 512 ];
SendMessage(hwnd2, WM_GETTEXT, sizeof(buf)/sizeof(TCHAR), (LPARAM)(void*)buf);
Здесь hwnd2 - это HWND блокнота.
...
Рейтинг: 0 / 0
23.09.2007, 21:55:46
    #34820292
ErV
ErV
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
виртуальный редактор
JustVas wrote:

> Здесь hwnd2 - это HWND блокнота.
В WinAPI должны быть функции для перебора имеющихся окон и потомков
окна. Попробуйте их поискать в справке (что это конкретно, я не помню,
так как ни разу не пользовался, но помню, что они есть. Что-то вроде
EnumerateWindows, возможно).

Ещё на ActivePerl шел в комплекте пример, писавший текст в блокнот.
Возможно, там что-то есть интересное.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
24.09.2007, 09:37:31
    #34820545
Cerebrum
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
виртуальный редактор
ErV
JustVas wrote:

> Здесь hwnd2 - это HWND блокнота.
В WinAPI должны быть функции для перебора имеющихся окон и потомков
окна.
FindWindow, GetWindow
...
Рейтинг: 0 / 0
24.09.2007, 11:23:33
    #34820827
JustVas
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
виртуальный редактор
Всем огромное спасибо! Заработало! :)
...
Рейтинг: 0 / 0
24.09.2007, 20:57:43
    #34822718
White Owl
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
виртуальный редактор
JustVasНапример, вот код, который даже есть в msdn, и который должен читать содержимое, а читает заголовок:
Код: plaintext
1.
2.
TCHAR buf[ 512 ];
SendMessage(hwnd2, WM_GETTEXT, sizeof(buf)/sizeof(TCHAR), (LPARAM)(void*)buf);
Здесь hwnd2 - это HWND блокнота.Ну дык кто тебе сказал что надо брать HWND Блокнота? Надо брать HWND окошка внутри Блокнота.
...
Рейтинг: 0 / 0
28.09.2007, 13:29:30
    #34834502
JustVas
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
виртуальный редактор
Усложняем... :)
Как оказалось, такой код здорово работает для блокнота (SDI), а для MDI оказался нерабочим (например, word). Последнее Child окно, которое находит EnumChildWindows - это одно из дочерних окон (а не Edit-область - это и Spy++ показывает), и SendMessage пишет/читает его рамку. А вот как писать сам текст в этом MDI???
...
Рейтинг: 0 / 0
29.09.2007, 09:31:38
    #34836221
JustVas
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
виртуальный редактор
HELP!!! Очень надо! DefMDIChildProc(hwnd, WM_SETTEXT, 0, (LPARAM)(void*)p_str) тоже не работает - пишет в рамку
...
Рейтинг: 0 / 0
Форумы / C++ [игнор отключен] [закрыт для гостей] / виртуальный редактор / 12 сообщений из 12, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]