хук активации...не дает активировать дргие окны системы,никакие... длл
| Код | #include "stdafx.h"
HHOOK hook; HINSTANCE hInstance;
LRESULT CALLBACK HookProc(int code,WPARAM wParav,LPARAM lParam); extern "C" __declspec(dllexport) BOOLEAN Set(BOLLEAN flag);
LRESULT CALLBACK HookProc(int code,WPARAM wParam,LPARAM lParam){ if (code<0) return CallNextHookEx(hook,code,wParam,lParam);
if(code==HCBT_ACTIVATE) return true;
CallNextHookEx(hook,code,wParam,lParam); }
extern "C" __declspec(dllexport) BOOLEAN Set(BOOLEAN flag){ if (flag) { if (hook==0) { hook = SetWindowsHookEx(WH_CBT,(HOOKPROC)HookProc, hInstance, 0); return true; } else { UnhookWindowsHookEx(hook); hook=0; return false; }
} return false; } |
далее вызываем его в главном окне проги:| Код |
typedef boolean (__import *BType)(boolean); HINSTANCE hInst; BType Set = NULL;
... hInst = LoadLibrary("Project1.dll"); if (hInst==NULL) { ShowMessage(“Cannot load the library”); } Set = (BType)GetProcAddress(hInst, "Set"); If(Set==NULL) ShowMessage(“Cannot load the function”); }
|
Активация действительно не происходит,но если кликнуит по заголовку окна-оно активируется...Если запустить прогу на голом рабочем столе,то с него можно запускать ярлыки...но активировать-нет,если тока по заголовку...В чем проблема?Спасибо за любую помощь! |