| imho.ws |
![]() |
|
|
|
# 1 |
|
Guest
Сообщения: n/a
|
Delphi: sendmessage не работает
Код
h:=findwindow(nil, pchar(edit1.text)); sendmessage(h, wm_close, 0, 0);пашет нормально, но другие сообщения sendmessage(h, WM_NEXTDLGCTL, 0, 0); sendmessage(h, WM_PASTE, 0, 0);не оказывают влияния на получателя. Что я делаю неправильно? |
|
|
# 4 | ||
|
Advanced Member
Регистрация: 23.08.2003
Сообщения: 442
![]() ![]() |
Цитата:
Цитата:
|
||
|
|
|
|
# 10 | |
|
Guest
Сообщения: n/a
|
Цитата:
2. запускаю свою прогу, и ту, в которую нужно вставить текст 3. нажимаю в своей проге "Поехали!" с кодом: h:=findwindow(nil, pchar(edWindowHeader.text)); //ищу по тексту из едита sendmessage(h, WM_NEXTDLGCTL, 0, 0); sendmessage(h, WM_NEXTDLGCTL, 0, 0); (*знаю, что текстовый компонент третий по порядку*) sendmessage(h, WM_PASTE, 0, 0); //вставка из буфера Прикол в том, что ничего не происходит, но если в этой же проге (чужой) нажать два раза TAB, то активным будет текстовый компонент |
|
|
|
# 11 | |
|
Advanced Member
Регистрация: 23.08.2003
Сообщения: 442
![]() ![]() |
в коде куча ошибок.
первая: Цитата:
вторая: h:=findwindow(nil, pchar(edWindowHeader.text)); sendmessage(h, WM_NEXTDLGCTL, 0, 0); эти кодом ( если предположить что он работает и h -- HANDLE edit' a ) ты просиш edit переключить фокус на следующий из своих контролов ( о чем я и говорил ) что не правильно -- нет у него никаких контролов. |
|
|
|
|
|
# 12 | |||
|
Guest
Сообщения: n/a
|
Цитата:
Цитата:
Цитата:
в этом случае поиск чужого окна произвожу по имени окна, которое для гибкости беру из своего edit.text, в итоге получаю что-то вроде: h:=findwindow(nil, 'Безымянный - Блокнот'); причем h<>0 (при выполнении проги). |
|||
|
|
# 13 | ||
|
Advanced Member
Регистрация: 23.08.2003
Сообщения: 442
![]() ![]() |
Цитата:
Цитата:
тогда этой: sendmessage(h, WM_PASTE, 0, 0); строкой ты вставляеш текст в найденное тобой окно ( а не в edit ) |
||
|
|
|
|
# 15 |
|
Advanced Member
Регистрация: 23.08.2003
Сообщения: 442
![]() ![]() |
нет. сообщение идет по адресу, а адрес -- handle окна.
что делать?.. можеш юзать: Код:
HWND FindWindowEx(
HWND hwndParent, // handle to parent window
HWND hwndChildAfter, // handle to a child window
LPCTSTR lpszClass, // pointer to class name
LPCTSTR lpszWindow // pointer to window name
);
|
|
|