Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 04.01.2009, 12:02
ApplicatiOn ApplicatiOn вне форума
Активный
 
Регистрация: 28.02.2008
Сообщения: 388
Репутация: -10
Восклицание Эмуляция клавиш

Помогите пожалуйста.

Код:
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  
Старый 08.01.2009, 23:21
albatros albatros вне форума
Прохожий
 
Регистрация: 13.11.2008
Сообщения: 4
Репутация: 10
По умолчанию

есть отличная процедура keybd_event
Ответить с цитированием
  #3  
Старый 08.01.2009, 23:27
albatros albatros вне форума
Прохожий
 
Регистрация: 13.11.2008
Сообщения: 4
Репутация: 10
По умолчанию

функция keybd_event работает проверено не в одной проге
keybd_event(VK_Insert,0,0,0);//для нажатия клавиши
keybd_event(vk_inser,0, keyeventf_keyup,0);//для отпуска клавиши
вот и получается твой клавиатурный эмулятор
Ответить с цитированием
  #4  
Старый 09.01.2009, 13:05
ApplicatiOn ApplicatiOn вне форума
Активный
 
Регистрация: 28.02.2008
Сообщения: 388
Репутация: -10
По умолчанию

и где она эмулирует? только в моем программе или везде?

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.
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 11:05.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter