![]() |
|
|
|
|
#1
|
|||
|
|||
|
Помогите пожалуйста.
Код:
procedure TForm1.Timer1Timer(Sender: TObject);
var
i : Integer;
H : Hwnd;
begin
H := FindWindow(0, 'Form1');
if (getasynckeystate(VK_INSERT)=-32768) then
begin
sendmessage(H, wm_char, ord('A'), 0);
For i:=1 to length(Edit1.text) do
sendmessage(H, wm_char, ord(Edit1.text[i]), 0);
SendMessage(H, WM_KEYDOWN, vk_return, 0);
SendMessage(H, WM_KEYUP, vk_return, 0);
end;
end;хочу при нажатии на клавишу Insert, эмулировать в заданном окне клавиши. Form1 это заголовок окна (в той программе Memo), и при нажатии на Insert он должен был выдать так: AText AText AText ... до тех пор пока не отпущу Insert. Но при нажатии на клавишу ничего не происходит. Очень нужна ваша помощь.... ![]() |
|
#2
|
|||
|
|||
|
есть отличная процедура keybd_event
|
|
#3
|
|||
|
|||
|
функция keybd_event работает проверено не в одной проге
keybd_event(VK_Insert,0,0,0);//для нажатия клавиши keybd_event(vk_inser,0, keyeventf_keyup,0);//для отпуска клавиши вот и получается твой клавиатурный эмулятор |
|
#4
|
|||
|
|||
|
и где она эмулирует? только в моем программе или везде?
p.s. вроде получилось, но не пойму как эмулировать обычный символ... Код:
keybd_event('A',0, keyeventf_keyup,0);пишет ошибку Код:
keybd_event(ord('A'),0, keyeventf_keyup,0);компилит но не эмулирует то что надо Код:
keybd_event(41,0, keyeventf_keyup,0); (взял код отсюда http://delphi.about.com/od/objectpascalide/l/blvkc.htm) тоже не работает... Последний раз редактировалось ApplicatiOn, 09.01.2009 в 13:17. |