Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Системное программирование и WinAPI > Хук работает с багами


Автор: fromrus 7.10.2008, 11:20
хук активации...не дает активировать дргие окны системы,никакие...
длл
Код

#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”); 
            }



Активация действительно не происходит,но если кликнуит по заголовку окна-оно активируется...Если запустить прогу на голом рабочем столе,то с него можно запускать ярлыки...но активировать-нет,если тока по заголовку...В чем проблема?Спасибо за любую помощь!

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)