Форум программистов
 
О проблемах, например, с регистрацией пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail, а тут можно восстановить пароль.

Вернуться   Форум программистов > Низкоуровневое программирование > Win Api
Регистрация

Восстановить пароль
Повторная активизация e-mail

Здесь нужно купить рекламу за 20 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru
Без учёта ботов - 20000 человек в день, 350000 в месяц.

Ответ
 
Опции темы
Старый 10.09.2008, 20:30   #1
Черничный
Форумчанин
 
Регистрация: 27.01.2007
Сообщений: 293
По умолчанию Отследить нажатие клавиши для отдельного окна

А можно отслеживать нажатые клавиши для отделдьного окна, и не используя внешнюю dll, что бы все было в exe (это вроде локальный hook). И воощем как отследить. У меня так, если нашел активное окно с таким то заголовком, то шпионить... Полазал по форуму, но что то нужного куска кода я не обнаружил.
Черничный вне форума Ответить с цитированием
Старый 10.09.2008, 23:21   #2
eyeofthedemon
Заблокирован
 
Регистрация: 09.09.2008
Сообщений: 8
По умолчанию

Ет кажысь нереальна без...DLL
eyeofthedemon вне форума Ответить с цитированием
Старый 10.09.2008, 23:46   #3
Черничный
Форумчанин
 
Регистрация: 27.01.2007
Сообщений: 293
По умолчанию

читал что глобальная с dll, а локальная для какого то приложения можно из exe
Черничный вне форума Ответить с цитированием
Старый 11.09.2008, 06:48   #4
rpy3uH
добрый няша
СуперМодератор
 
Аватар для rpy3uH
 
Регистрация: 29.10.2006
Сообщений: 4,808
По умолчанию

если захотеть, то можно. В общем, копай в сторону инжекта в другие процессы. Но там уже надо писать базонезависимый код, на Delphi это будет сложновато, но возможно.
rpy3uH вне форума Ответить с цитированием
Старый 11.09.2008, 17:36   #5
Somebody
Участник клуба
 
Регистрация: 08.10.2007
Сообщений: 1,185
По умолчанию

Глобальный хук WH_JOURNALRECORD работает без dll
http://www.xakep.ru/magazine/xs/070/040/1.asp
Somebody вне форума Ответить с цитированием
Старый 11.09.2008, 20:12   #6
Черничный
Форумчанин
 
Регистрация: 27.01.2007
Сообщений: 293
По умолчанию

да это я уже понял и работает для отдельнного приложения а не всей системы
Черничный вне форума Ответить с цитированием
Старый 12.09.2008, 22:24   #7
Черничный
Форумчанин
 
Регистрация: 27.01.2007
Сообщений: 293
По умолчанию

Ребята, полазал я на журнале хакер, все вроде нашел, но столкнулася с проблемками...
есть строка:
HookHandle := SetWindowsHookEx(WH_JOURNALRECORD, @HookProc, hInstance, 0);

Жалуется на HookProc! В чем дело? HookProc видимо нигде не объявленна, но там ничего я не нашел больше
Черничный вне форума Ответить с цитированием
Старый 12.09.2008, 23:41   #8
mytant712
 
Регистрация: 09.09.2008
Сообщений: 5
По умолчанию

HookProc это твоя процедура обработки перехвата, которая должна быть в dll как я понял.сам сижу с этим разбираюсь(
mytant712 вне форума Ответить с цитированием
Старый 13.09.2008, 11:20   #9
Черничный
Форумчанин
 
Регистрация: 27.01.2007
Сообщений: 293
По умолчанию

Цитата:
Сообщение от mytant712 Посмотреть сообщение
HookProc это твоя процедура обработки перехвата, которая должна быть в dll как я понял.сам сижу с этим разбираюсь(
Я использую локальный хук, тут не надо dll
http://www.xakep.ru/magazine/xs/070/040/1.asp
вот тут я инфу брал
Черничный вне форума Ответить с цитированием
Старый 13.09.2008, 15:39   #10
eoln
Старожил
 
Аватар для eoln
 
Регистрация: 26.04.2008
Сообщений: 2,691
По умолчанию

Вот небольшая рабочая часть программы.
Код:
var 
  HookHandle: hHook; 

function HookProc(Code:integer; WParam:word; LParam:Longint):Longint; stdcall;
begin 
  //какие-то действия ловушки
  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;
Но учтите ctrl-alt-delete (я этими кнопками пару раз в час пользуюсь) и подобные сочетания вашу ловушку закроют. Лучше обычную с dll-кой сделать и если dll мешается - запихнуть её в ресурсы, а при запуске распаковывать и загружать оттуда ловушку.

Последний раз редактировалось eoln; 13.09.2008 в 15:42.
eoln вне форума Ответить с цитированием
Ответ

Здесь нужно купить рекламу за 20 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru
Без учёта ботов - 20000 человек в день, 350000 в месяц.

Опции темы


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как отследить нажатие кнопки Обновить из PHP? Timpi PHP 4 11.07.2008 08:16
Как отследить отпускание клавиши? Zefick Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 2 27.05.2008 18:14
Нажатие клавиши format Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 1 05.05.2008 14:25
Отследить нажатие одной кнопки в другом приложении... ActiveX Win Api 4 04.04.2008 22:05
Клавиатура, нажатие клавиши Yogik™ Помощь студентам 4 21.11.2007 00:05


Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru
Пеллетный котёл Emtas
котлы EMTAS
Здесь нужно купить рекламу за 7 тыс руб в месяц! )
пишите сюда - alarforum@yandex.ru
ИКС 840