Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.09.04;
Скачать: CL | DM;

Вниз

Имитация нажатия клавиш   Найти похожие ветки 

 
Бобров Илья   (2005-08-15 18:37) [0]

Мастера, подскажите как послать в компонент имитированное нажатие комбинации клавиш ctrl+f?
За ранее благодарен!


 
Delphi_is_cool ©   (2005-08-15 19:17) [1]

В какой компонент ? А вобще не проще ли сделать невидимую кнопку и кликнуть по ней ?


 
злобная танька   (2005-08-15 19:42) [2]

procedure TForm1.Button1KeyDown(Sender: TObject; var Key: Word;
 Shift: TShiftState);
begin
 if (ssCtrl in Shift) and (Key = 70) then
   ShowMessage("he he!");
end;

procedure TForm1.Button2Click(Sender: TObject);
var
 k: word;
begin
 k := 70;
 Button1KeyDown(Self, k, [ssCtrl]);
end;

но это только если OnKeyDown есть у компонента. Если нету - придется черес PostMessage наверно или типа того!


 
Delphi_is_cool ©   (2005-08-15 19:47) [3]

Можно попробовать так:


const
 WM_MYHOTKEY = WM_USER + 100;
...

 private
   procedure Hot_key(var Msg: TMessage); Message WM_MYHOTKEY;

...

procedure TForm1.Hot_key(var Msg: TMessage);
begin
 if (Msg.WParam = VK_CONTROL) and (Msg.LParam = $46) then ShowMessage("LOL");
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
 SendMessage(Handle, WM_MYHOTKEY, VK_CONTROL, $46); // <ctrl> + <f>
end;


Вот только не знаю это ли Вам нужно ...


 
злобная танька   (2005-08-15 20:17) [4]

procedure TForm1.Button2Click(Sender: TObject);
var
 ks: TKeyboardState;
begin
 GetKeyboardState(ks);
 ks[17] := 255;
 SetKeyboardState(ks);
 PostMessage(Button1.Handle, WM_KEYDOWN, 70, 0);
end;

работает, но как-то уж очень криво.. с клавой что-то случается нехорошее :) я вообще-то в WinAPI не очень соображаю.. сейчас подправлю может :)


 
TUser ©   (2005-08-15 20:33) [5]

Если это компонент в твоей программе - то все это не нужно. Просты вызывай метод-обработчик.


 
Leonid Troyanovsky ©   (2005-08-15 21:43) [6]


> злобная танька   (15.08.05 20:17) [4]


http://groups.google.com/group/fido7.ru.delphi.chainik/msg/e8115e50b604ca90

--
Regards, LVT.



Страницы: 1 вся ветка

Текущий архив: 2005.09.04;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.049 c
9-1115410889
Qwertyk
2005-05-07 00:21
2005.09.04
Карты


14-1123576142
cspr
2005-08-09 12:29
2005.09.04
подключение 2-х компов с помощью розеток


3-1121942224
helpme
2005-07-21 14:37
2005.09.04
Как определить используется ли запись другим пользователем


5-1096957853
Jiny
2004-10-05 10:30
2005.09.04
Как закрасить закладки компоненты TPageControl


14-1123512643
GuAV
2005-08-08 18:50
2005.09.04
Шум, вызванный бездействием системы.