Цитата:
Сообщение от Paladin
Щас глянул, а у меня точно так же
Код:
.b-entryunit-title {
font: 1.733em/1 "ProximaNovaLight",Helvetica,Arial,sans-serif;
}
|
Кстати, тебе чего, заняться нечем?) Ты не в курсе как работает CallNextHookEx?
Добавлено через 8 минут
В общем в одной игрухе пытаюсь найти обработку нажатия клавиш.
Оконная процедура начинается вот с такой бадяги:
Код:
void __userpurge sub_41F06B(int this<ecx>, double a2<st0>, HWND hWnd, int message, int wParam, unsigned int lParam)
{
int v6; // edi@1
unsigned int v7; // eax@9
int v8; // ecx@13
int v9; // eax@23
int v10; // edi@23
int v11; // ST14_4@23
int v12; // ST18_4@23
int v13; // ST14_4@23
int v14; // ST18_4@23
int v15; // eax@27
int v16; // [sp+8h] [bp-70h]@22
char v17; // [sp+Ch] [bp-6Ch]@22
int v18; // [sp+10h] [bp-68h]@22
int v19; // [sp+14h] [bp-64h]@22
int v20; // [sp+18h] [bp-60h]@22
int v21; // [sp+1Ch] [bp-5Ch]@22
int v22; // [sp+24h] [bp-54h]@22
int v23; // [sp+44h] [bp-34h]@1
int v24; // [sp+48h] [bp-30h]@22
char v25; // [sp+4Ch] [bp-2Ch]@22
char v26; // [sp+78h] [bp+0h]@1
unsigned int v27; // [sp+DCh] [bp+64h]@1
v27 = (unsigned int)&v26 ^ dword_8C8C20;
v23 = (int)hWnd;
v6 = this;
if ( message == 1 )
{
v15 = dword_7F32CC();
hookHandle = SetWindowsHookExA(2, sub_41E792, 0, v15);
goto LABEL_28;
}
То есть если WM_CREATE, то ставим кейборд хук с вот таким колбеком:
Код:
int __stdcall sub_41E792(int actionCode, int keyCode, int lParam)
{
int result; // eax@4
if ( actionCode < 0 )
goto LABEL_13;
if ( actionCode == 46 && lParam == 0x2E0003 )
return 1;
if ( keyCode != 25 && (keyCode != 21 || dword_8DCE4C || dword_8DAC08) )
LABEL_13:
result = CallNextHookEx(hookHandle, actionCode, keyCode, lParam);
else
result = -1;
return result;
}
И всё бля, тут глухо, просто вызывается следующий хук. И вот вопрос такой: а можно как-то посмотреть эту таблицу хуков или колбэков? Или как определить, какой колбэк он сейчас вызовет?
Есть вариант самому хукнуть SetWindowsHookEx, но в рамках ГГ это для меня сейчас геморно.