Форум: "Начинающим";
Текущий архив: 2007.08.26;
Скачать: [xml.tar.bz2];
ВнизЭмулятор нажатия Enter а Найти похожие ветки
← →
Slonik (2007-08-03 01:54) [0]Доброго времени суток! Нужно в текстовом поле нажать на ентер, но не на клаве, а через программу... Пробывал SendMessage(ControlHandle, BM_CLICK, 0, 0), чет не получается... Напишите, пожалуйста, какие-нить другие варианты.
Заранее спасибо!
← →
Elen © (2007-08-03 09:20) [1]Попробуй
Edit1.Perform(WM_CHAR,13,0);
Только зачем все это? Если ты прописал обработчик OnKeyPress или Down или Up то проще вызывать соответствующую им процедуру, передавая туда клавишу #13.
← →
Dib@zol © (2007-08-03 09:22) [2]Эт оч просто:
Сначала надо унаследовать свою оконную процедуру от процедуры едит-а;
Потом подключиться к ней;
И творить что в голову взбредёт!
Вот пример:
var
EWP : Pointer;
...
function EDP(hWnd: HWND; Msg: LongInt; wParam, lParam: Longint): longInt; stdcall;
begin
if (Msg = WM_KEYUP)and(wParam = VK_RETURN) then begin
MessageBox(hWnd, "Урряя!! Поймалося!!!", "", 0); // <- Вот оно!!!
end else Result:=CallWindowProc(EWP, hWnd, Msg, wParam, lParam);
end;
...
longInt(EWP):=setWindowLong(Edit1.Handle, GWL_WNDPROC, longInt(@EDP));
← →
JanMihail © (2007-08-03 11:18) [3]PostMessage(VK_RETURN, WM_KEYDOWN, 1, 1);
PostMessage(VK_RETURN, WM_KEYUP, 1, 1);
← →
JanMihail © (2007-08-03 11:19) [4]
> [3]
Извини ошибся. Вот так:
PostMessage(<хэндл>, WM_KEYDOWN, VK_RETURN, 1);
PostMessage(<хэндл>, WM_KEYUP, VK_RETURN, 1);
← →
Leonid Troyanovsky © (2007-08-03 12:29) [5]
> JanMihail © (03.08.07 11:19) [4]
> Извини ошибся. Вот так:
Все равно, это лишь имитация (приблизительная).
Если уж эмулировать, то SendInput to foreground window.
--
Regards, LVT.
← →
имя (2007-08-03 15:16) [6]Удалено модератором
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2007.08.26;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.091 c