Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "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
14-1094236585
Владислав
2004-09-03 22:36
2004.09.26
Вопрос.


1-1095142225
Девушка
2004-09-14 10:10
2004.09.26
ЧЧ.ММ.ГГГГ->ГГГГ.ММ.ЧЧ


14-1094536623
Леван
2004-09-07 09:57
2004.09.26
Лазерный принитер


3-1093842555
Санёк
2004-08-30 09:09
2004.09.26
ADODataSet логическая блокировка записи


14-1094235016
Verg
2004-09-03 22:10
2004.09.26
Я плачу....





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский