怎么样Hook文件拖拽WM_DROPFILES
我想获得鼠标从一个目录拖拽文件到另外一个目录时,文件的位置,所以就想用HOOK,拦截WM_DROPFILES
以下是dll中的代码。但是HOOK不到WM_DROPFILES。
HINSTANCE hDll=NULL;
HHOOK g_hHook = 0; //HOOK句柄
HWND g_hWnd = 0;
__declspec(dllexport) int GetWindowTextRemote(HWND hWnd, LPSTR lpString)
{
g_hWnd = hWnd;
DWORD id = GetWindowThreadProcessId(hWnd,NULL);
//给目标进程安装一个窗口过程钩子
g_hHook = SetWindowsHookEx(WH_CALLWNDPROC,(HOOKPROC)HookProc,
hDll, 0 );
if( g_hHook==NULL ) {
lpString[0] = '\0';
return 0;
}
AfxMessageBox("Hook安装成功");
}
LRESULT HookProc (
int code, // hook code
WPARAM wParam, // virtual-key code
LPARAM lParam // keystroke-message information
)
{
if(code>=0)
{
LPCWPSTRUCT lpmsg=(LPCWPSTRUCT)lParam;
if(lpmsg->message == WM_DROPFILES)
{
int kk = 0;
AfxMessageBox("WM_DROPFILES");
}
}
//将消息处理权转让给下一个钩子函数
return CallNextHookEx(g_hHook, code, wParam, lParam);
}