Отправляет email-рассылки с помощью сервиса Sendsay

Программирование. Форум !!!

KEyPress

Hi!
Каким образом можно сделать так, чтоб прога знала, какие кнопки жмутся в
момент, когда она в Deactivate'e? Т.е. прога скажем в трее... как ее
выцепить от туда и развернуть нажав, скажем, F12 ? У меня есть звонилка
для Инет, так вот она в трее висит, а когда жмешь F9 - всплывает...
-=BMaN=-
Получить правила : mailto:comp.soft.prog.prog-rules@subscribe.ru
Формат "дайджест" : mailto:comp.soft.prog.prog-digest@subscribe.ru
Формат "каждое письмо" : mailto:comp.soft.prog.prog-normal@subscribe.ru
Формат "читать с веба" : mailto:comp.soft.prog.prog-webonly@subscribe.ru

-*Информационный канал Subscribe.Ru
Написать в лист: mailto:comp.soft.prog.prog-list@subscribe.ru
Отписаться: mailto:comp.soft.prog.prog--unsub@subscribe.ru

http://subscribe.ru/ mailto:ask@subscribe.ru

Ответить   Wed, 14 Jan 2004 18:09:23 +0200 (#54570)

 

Ответы:

On Wed, Jan 14, 2004 at 06:09:23PM +0200, Boris Kolupaev wrote:

Если я не ошибаюсь, то RegisterHotKey тебе поможет.

Ответить   Wed, 14 Jan 2004 22:32:07 +0300 (#54588)

 

Здарова, Boris Kolupaev!

14 января 2004 г., среда, 21:09:23, ты намылил:

На delphi:
type
TForm1 = class(TForm)
...
protected
procedure hotykey(var msg:TMessage);
message WM_HOTKEY;
end;

var
Form1: TForm1;
sel,mod_,id,key_e:Integer;

implementation

{$R *.DFM}
{$I constR.inc}
type keyarray=record
KeyCode:array [1..74] of word;
KeyHint:array [1..74] of string;
end;

procedure TForm1.hotykey(var msg:TMessage);
begin
if (msg.LParamLo=mod_) and ((msg.LParamHi=KeyCode[sel]) or (msg.LParamHi=key_e))
then ShowMessage('hotkey pressed');
end;

procedure TForm1.FormDestroy(Sender: TObject);
begin
UnRegisterHotKey(handle,id);
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
id:=GlobalAddAtom('hotkey');
mod_:=0;
mod_:=mod_ or mod_shift or mod_control or mod_alt or mod_win;
UnRegisterHotKey(handle,id);
sel:=1; Пример, подробнее в constR.inc, еще можно ипользовать THotKey
RegisterHotKey(handle,id,mod_,KeyCode[sel]);
end;

==Начало constR.inc==
const
KeyCode:array [1..74] of word=(
VK_LBUTTON,
VK_RBUTTON,
VK_CANCEL,
VK_MBUTTON,
VK_BACK,
VK_TAB,
VK_CLEAR,
VK_RETURN,
VK_SHIFT,
VK_CONTROL,
VK_MENU,
VK_PAUSE,
VK_CAPITAL,
VK_SPACE,
VK_PRIOR,
VK_NEXT,
VK_END,
VK_HOME,
VK_LEFT,
VK_UP,
VK_RIGHT,
VK_DOWN,
VK_SELECT,
VK_PRINT,
VK_EXECUTE,
VK_SNAPSHOT,
VK_INSERT,
VK_DELETE,
VK_HELP,
VK_LWIN,
VK_RWIN,
VK_APPS,
VK_NUMPAD0,
VK_NUMPAD1,
VK_NUMPAD2,
VK_NUMPAD3,
VK_NUMPAD4,
VK_NUMPAD5,
VK_NUMPAD6,
VK_NUMPAD7,
VK_NUMPAD8,
VK_NUMPAD9,
VK_MULTIPLY,
VK_ADD,
VK_SEPARATOR,
VK_SUBTRACT,
VK_DECIMAL,
VK_DIVIDE,
VK_F1,
VK_F2,
VK_F3,
VK_F4,
VK_F5,
VK_F6,
VK_F7,
VK_F8,
VK_F9,
VK_F10,
VK_F11,
VK_F12,
VK_F13,
VK_F14,
VK_F15,
VK_F16,
VK_F17,
VK_F18,
VK_F19,
VK_F20,
VK_F21,
VK_F22,
VK_F23,
VK_F24,
VK_NUMLOCK,
VK_SCROLL
);

KeyHint: array[1..74]of string = (
'Левая клавиша мышки',
'Правая клавиша мышки',
'Control+Break',
'Средняя клавиша мышки',
'Backspace клавиша',
'Tab клавиша',
'Clear клавиша',
'Enter клавиша',
'Shift клавиша',
'Ctrl клавиша',
'Alt клавиша',
'Pause клавиша',
'Caps Lock клавиша',
'Пробел',
'Page Up клавиша',
'Page Down клавиша',
'End клавиша',
'Home клавиша',
'Стрелка влево',
'Стрелка вверх',
'Стрелка вправо',
'Стрелка вниз',
'Select клавиша',
'Print клавиша (обычно ctr+Print Screen)',
'Execute клавиша',
'Print Screen клавиша',
'Insert клавиша',
'Delete клавиша',
'Help клавиша',
'Left Windows клавиша (Microsoft клавиша)',
'Right Windows клавиша (Microsoft клавиша)',
'Applications клавиша (Microsoft клавиша)',
'0 клавиша (клавиша доп. клавиатуры)',
'1 клавиша (клавиша доп. клавиатуры)',
'2 клавиша (клавиша доп. клавиатуры)',
'3 клавиша (клавиша доп. клавиатуры)',
'4 клавиша (клавиша доп. клавиатуры)',
'5 клавиша (клавиша доп. клавиатуры)',
'6 клавиша (клавиша доп. клавиатуры)',
'7 клавиша (клавиша доп. клавиатуры)',
'8 клавиша (клавиша доп. клавиатуры)',
'9 клавиша (клавиша доп. клавиатуры)',
'Клавиша умножить (клавиша доп. клавиатуры)',
'Клавиша сложить (клавиша доп. клавиатуры)',
'Клавиша SEPARATOR (клавиша доп. клавиатуры)',
'Клавиша вычитания (клавиша доп. клавиатуры)',
'Клавиша Точка (клавиша доп. клавиатуры)',
'Клавиша деления (клавиша доп. клавиатуры)',
'F1 клавиша',
'F2 клавиша',
'F3 клавиша',
'F4 клавиша',
'F5 клавиша',
'F6 клавиша',
'F7 клавиша',
'F8 клавиша',
'F9 клавиша',
'F10 клавиша',
'F11 клавиша',
'F12 клавиша',
'F13 клавиша',
'F14 клавиша',
'F15 клавиша',
'F16 клавиша',
'F17 клавиша',
'F18 клавиша',
'F19 клавиша',
'F20 клавиша',
'F21 клавиша',
'F22 клавиша',
'F23 клавиша',
'F24 клавиша',
'Num Lock клавиша',
'Scroll Lock клавиша'
);
==Конец constR.inc==

Еще проблема с Form1.FormStyle [fsStayOnTop, fsNormal и т.д.), при
смене надо заново RegisterHotKey (а старый UnRegisterHotKey).

PS: Я тут кучу своего кода поудалял, так-что не удивляйся если сразу
не заробит.
--
Хочешь яркого и быстрого - сожги коробок спичек.

Ответить   Томилов Александр Thu, 15 Jan 2004 19:15:20 +0500 (#55493)