Форум: "WinAPI";
Текущий архив: 2004.09.26;
Скачать: [xml.tar.bz2];
Внизможно ли сделать "ловушку" без использования библиотеки? Найти похожие ветки
← →
Ego (2004-08-10 19:28) [0]Постараюсь об`яснить, что мне надо: у меня есть программа, которая откликается на "горячие клавиши" другой программы.Но, для этого, ей( моей программе ), приходиться "таскать за собой" dll.Можно как-нибудь обойтись без библиотечного файла?
← →
OSokin © (2004-08-10 20:53) [1]Имхо другую прогу поставить
← →
имя (2004-08-10 21:12) [2]Удалено модератором
← →
имя (2004-08-10 21:12) [3]Удалено модератором
← →
имя (2004-08-10 21:12) [4]Удалено модератором
← →
имя (2004-08-10 21:12) [5]Удалено модератором
← →
имя (2004-08-10 21:12) [6]Удалено модератором
← →
Ego (2004-08-10 21:58) [7]OSokin © Спасибо за ответ, хотя, понятно, он и не помог.
Модепр- дмуда укук : тоже спасибо за ответ, хотя, поверь, если бы мне хотелось услышать глас "шлепка майонезного", то я бы обратился не к тебе: в твоем исполнении это слишком невнятно звучит...
← →
Ego (2004-08-11 00:50) [8]Подскажи, какую "прогу"...я написал "макрос" на ассемблере, но Windows-приложение его откинуло: знать не знаю...потом я разобрался, что DOS и Windows приложения работают чуть-чуть по-разному...ребята, пожалуйста, помогите..
← →
Ego (2004-08-11 00:59) [9]я пытался отловить поле " indicator ", но что-то , ...не судьба...
← →
Алхимик © (2004-08-11 01:52) [10]Непонятно что за Dll и зачем её таскать.
Примерчик работы ловушки:var
HookHandle: hHook;
function HookProc(Code: integer; WParam: word; LParam: Longint): Longint; stdcall;
var
msg: PEVENTMSG;
begin
if Code >= 0 then begin
result := 0;
msg := Pointer(LParam);
case msg.message of
WM_KEYUP:
WM_KEYDOWN:
{И так далее}
end;
end else
result := CallNextHookEx(HookHandle, code, WParam, LParam);
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
HookHandle := SetWindowsHookEx(WH_JOURNALRECORD, @HookProc, HInstance, 0);
end;
procedure TForm1.FormDestroy(Sender: TObject);
begin
if HookHandle <> 0 then
UnhookWindowsHookEx(HookHandle);
end;
← →
Aleksey Pavlov © (2004-08-11 02:02) [11]>>Ego:
Если надо получать только информацию о нажатых клавишах, тогда можно обойтись без dll, как во всех остальных случаях.
См.WH_JOURNALRECORD.
>>Алхимик © (11.08.04 01:52):
case msg.message of
WM_KEYUP:
WM_KEYDOWN:
{И так далее}
end;
Интересно, что же подразумевается в данном случае под этим "И так далее"? =)
← →
Алхимик © (2004-08-11 02:05) [12]WM_KEYUP например :)
← →
Digitman © (2004-08-11 08:15) [13]
> Ego (10.08.04 19:28)
> Можно как-нибудь обойтись без библиотечного файла?
> Алхимик © (11.08.04 01:52) [10]
> Непонятно что за Dll и зачем её таскать.
ответ на вопрос - в справке:
Hook Scope
WH_CALLWNDPROC Thread or system
WH_CBT Thread or system
WH_DEBUG Thread or system
WH_GETMESSAGE Thread or system
WH_JOURNALPLAYBACK System only
WH_JOURNALRECORD System only
WH_KEYBOARD Thread or system
WH_MOUSE Thread or system
WH_MSGFILTER Thread or system
WH_SHELL Thread or system
WH_SYSMSGFILTER System only
The system hooks are a shared resource, and installing one affects all applications. All system hook functions must be in libraries
← →
Алхимик_ (2004-08-11 09:08) [14][11] Aleksey Pavlov © (11.08.04 02:02)http://www.sources.ru/delphi/dll/hooks_aspects.shtml
:)
Прочитал до полного просветления.
Страницы: 1 вся ветка
Форум: "WinAPI";
Текущий архив: 2004.09.26;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.033 c