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

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

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


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

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

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

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

если захотеть, то можно. В общем, копай в сторону инжекта в другие процессы. Но там уже надо писать базонезависимый код, на Delphi это будет сложновато, но возможно.
rpy3uH вне форума Ответить с цитированием
Старый 11.09.2008, 18: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, 21:12   #6
Черничный
Форумчанин
 
Регистрация: 27.01.2007
Сообщений: 293
По умолчанию

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

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

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

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

Цитата:
Сообщение от mytant712 Посмотреть сообщение
HookProc это твоя процедура обработки перехвата, которая должна быть в dll как я понял.сам сижу с этим разбираюсь(
Я использую локальный хук, тут не надо dll
http://www.xakep.ru/magazine/xs/070/040/1.asp
вот тут я инфу брал
Черничный вне форума Ответить с цитированием
Старый 13.09.2008, 16: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 в 16:42.
eoln вне форума Ответить с цитированием
Ответ

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

Опции темы


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