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

Вниз

Как определить наименование текущего приложения?   Найти похожие ветки 

 
sohat   (2004-08-03 11:08) [0]

Некоторая программа учитывает время работы в определенном приложении. Как перехватить ввод с клавы или с мышки меня научили - через глобальный хук. А как определить текущее приложение, которому предназначено событие от клавы или мыши?


 
Digitman ©   (2004-08-03 11:17) [1]

DWORD GetModuleFileName(

   HMODULE hModule, // handle to module to find filename for
   LPTSTR lpFilename, // pointer to buffer for module path
   DWORD nSize  // size of buffer, in characters
  );


Parameters

hModule

Identifies the module whose executable filename is being requested. If this parameter is NULL, GetModuleFileName returns the path for the file used to create the calling process.


 
sohat   (2004-08-03 14:28) [2]

Запущено три приложения, как узнать какое из них в данный момент активно (находится в фокусе)?


 
Игорь Шевченко ©   (2004-08-03 15:12) [3]


> Запущено три приложения, как узнать какое из них в данный
> момент активно


То, в котором сработал глобальный хук


 
sohat   (2004-08-03 15:43) [4]

То есть мое ?
А как же тогда определить приложение в котором работает юзер?


 
Digitman ©   (2004-08-03 15:55) [5]


> sohat   (03.08.04 15:43) [4]
> То есть мое ?


ты вообще-то себе представляешь весь механизм работы глоб.ловушки ? хотя бы на огурцах ?


 
Игорь Шевченко ©   (2004-08-03 16:07) [6]


> То есть мое ?


Если хук сработал в твоем, то твое. Если хук сработал не в твоем, то чужое. DLL с хуком загружается в адресное пространство каждого приложения, в котором срабатывает этот хук.


 
sohat   (2004-08-03 17:26) [7]

Честно говоря я с этим столкнулся впервые (Как и с API функциями вообще). Я понял так что ловушка ловит событие, обрабатывает его и отправляет дольше (это как на агурцах :) ). Теперь я понял так что хук может сработать несколько раз, в зависимости от того, сколько приложений откликнулось на событие. Если Вас не затруднит, подскажите пожалуйста как определить приложение на котором сработала ловушка (если можно на примере - с огурцами туго).


 
Игорь Шевченко ©   (2004-08-03 17:34) [8]


> Если Вас не затруднит, подскажите пожалуйста как определить
> приложение на котором сработала ловушка


см. Digitman ©   (03.08.04 11:17) [1]


 
Digitman ©   (2004-08-03 17:34) [9]

function MouseHook(..): Integer; stdcall;
begin
... чего-то там
 GetModuleFileName(0, ...); //ф-ция MouseHook вызвана в контексте приложения, имя исп.файла которого возвратила ф-ция GetModuleFileName
... чего-то там еще
end;



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

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

Наверх




Память: 0.48 MB
Время: 0.035 c
3-1092898407
AndrewS
2004-08-19 10:53
2004.09.19
Доступ из Delphi к описаниям полей


14-1093937806
Layner
2004-08-31 11:36
2004.09.19
Есть ли спец. библиотеки (dll, com-сервера) для анализа/прогноза?


1-1094131795
Lord de Mon
2004-09-02 17:29
2004.09.19
Хочу чтоб окно приложения открывалось поверх остальных окон


3-1092929825
Aleksandr.
2004-08-19 19:37
2004.09.19
Надо ли вызывать Coinitialize для обычных глобальных объектов?


6-1089716484
Djon007
2004-07-13 15:01
2004.09.19
Протокол работи мирка есть,аси есть агде же протокол работи ODIGO