16,213
社区成员
发帖
与我相关
我的任务
分享
#ifndef LUCIFD062003_GLOBAL_H
#define LUCIFD062003_GLOBAL_H
#include <QtCore/qglobal.h>
#include<windows.h>
#if defined(LUCIFD062003_LIBRARY)
# define LUCIFD062003SHARED_EXPORT Q_DECL_EXPORT
#else
# define LUCIFD062003SHARED_EXPORT Q_DECL_IMPORT
#endif
#endif // LUCIFD062003_GLOBAL_H
#ifndef LUCIFD062003_H
#define LUCIFD062003_H
#include "lucifd062003_global.h"
#endif // LUCIFD062003_H
#include "lucifd062003.h"
#pragma data_seg("lucifd")
HHOOK pub_hook=NULL;
HWND pub_wndCaller=NULL;
#pragma data_seg()
HMODULE WINAPI ModuleFromAddr(PVOID pv)
{
MEMORY_BASIC_INFORMATION mbi;
if(VirtualQuery(pv,&mbi,sizeof(mbi))!=0)
return (HMODULE)mbi.AllocationBase;
else
return NULL;
}
LRESULT CALLBACK KeyHookProc(int iCode,WPARAM wParam,LPARAM lParam)
{
if(iCode<0||iCode==HC_NOREMOVE||wParam&0X40000000)
return CallNextHookEx(pub_hook,iCode,wParam,lParam);
MessageBox(NULL,L"lucifd",L"lucifd",MB_OK);
return CallNextHookEx(pub_hook,iCode,wParam,lParam);
}
BOOL WINAPI SetKeyHook(BOOL bInstall,DWORD dwTID,HWND hWndCaller)
{
BOOL reBool=FALSE;
pub_wndCaller=hWndCaller;
if(bInstall)
{
pub_hook=SetWindowsHookEx(WH_KEYBOARD_LL,KeyHookProc,ModuleFromAddr((PVOID)KeyHookProc),dwTID);
reBool=(pub_hook!=NULL);
}
else
{
reBool=UnhookWindowsHookEx(pub_hook);
pub_hook=NULL;
}
return reBool;
}
#pragma data_seg("lucifd")
HHOOK pub_hook=NULL;
HWND pub_wndCaller=NULL;
#pragma data_seg()
HHOOK pub_hook __attribute__((section("lucifd")) =NULL;
HWND pub_wndCaller __attribute__((section("lucifd")) =NULL;