资源简介
mfc安装全局钩子,显示窗口的标题,mfc安装全局钩子,显示窗口的标题
代码片段和文件信息
// MousehookDll.cpp : Defines the initialization routines for the DLL.
//
#include “stdafx.h“
#include
#include “MousehookDll.h“
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
static AFX_EXTENSION_MODULE MousehookDllDLL = { NULL NULL };
#pragma data_seg(“titlename“)
HWND glhPrevWnd=NULL; //上次鼠标所指的窗口句柄
HWND glhDisplayWnd=NULL; //显示目标窗口标题编辑框的句柄
HHOOK glhHook=NULL; //安装的鼠标钩子句柄
HINSTANCE glhInstance=NULL;//DLL实例句柄
#pragma data_seg()
extern “C“ int APIENTRY
DllMain(HINSTANCE hInstance DWORD dwReason LPVOID lpReserved)
{
// Remove this if you use lpReserved
UNREFERENCED_PARAMETER(lpReserved);
if (dwReason == DLL_PROCESS_ATTACH)
{
TRACE0(“MOUSEHOOKDLL.DLL Initializing!\n“);
// Extension DLL one-time initialization
if (!AfxInitExtensionModule(MousehookDllDLL hInstance))
return 0;
// Insert this DLL into the resource chain
// NOTE: If this Extension DLL is being implicitly linked to by
// an MFC Regular DLL (such as an ActiveX Control)
// instead of an MFC application then you will want to
// remove this line from DllMain and put it in a separate
// function exported from this Extension DLL. The Regular DLL
// that uses this Extension DLL should then explicitly call that
// function to initialize this Extension DLL. Otherwise
// the CDynlinkLibrary object will not be attached to the
// Regular DLL‘s resource chain and serious problems will
// result.
new CDynlinkLibrary(MousehookDllDLL);
glhInstance=hInstance;//插入保存DLL实例句柄
}
else if (dwReason == DLL_PROCESS_DETACH)
{
TRACE0(“MOUSEHOOKDLL.DLL Terminating!\n“);
// Terminate the library before destructors are called
AfxTermExtensionModule(MousehookDllDLL);
}
return 1; // ok
}
//鼠标钩子函数的实现
LRESULT CALLBACK MouseProc(int nCodeWPARAM wparamLPARAM lparam)
{
LPMOUSEHOOKSTRUCT pMouseHook=(MOUSEHOOKSTRUCT FAR *) lparam;
if (nCode>=0)
{
HWND glhTargetWnd=pMouseHook->hwnd;//取目标窗口句柄
HWND ParentWnd=glhTargetWnd;
while (ParentWnd !=NULL)
{
glhTargetWnd=ParentWnd;
ParentWnd=GetParent(glhTargetWnd); //取应用程序主窗口句柄
}
if(glhTargetWnd!=glhPrevWnd)
{
char szCaption[100];
GetWindowText(glhTargetWndszCaption100); //取目标窗口标题
if (strcmp(szCaption“UseMouseHook“))
{
if(IsWindow(glhDisplayWnd))
SendMessage(glhDisplayWndWM_SETTEXT0(LPARAM)(LPCTSTR)szCaption);
glhPrevWnd=glhTargetWnd; //保存目标窗口
}
}
}
return CallNextHookEx(glhHooknCodewparamlparam); //继续传递消息
}
CMouseHook::CMouseHook() //类构造函数
{
}
CMouseHook::~CMouseHook() //类析构函数
{
StopHook();
}
BOOL CMouseHook::StartHook(HWND hWnd) //安装钩子并设定接收显示窗口句柄
{
BOOL bResult=FALSE;
glhHook=SetWindowsHookEx(WH_MOUSEMouseProcglhInstance0);
if(glhHook!=NULL)
{
bResult=TRUE;
}
glhDisplayWnd=hWnd;//设置显示目标窗口标题编辑框的句柄
return bResu
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2012-04-05 21:05 全局鼠标钩子举例\
目录 0 2012-04-05 21:05 全局鼠标钩子举例\实例292——创建记录当前鼠标所在窗口标题信息的鼠标钩子DLL\
目录 0 2012-04-05 21:05 全局鼠标钩子举例\实例292——创建记录当前鼠标所在窗口标题信息的鼠标钩子DLL\MousehookDll\
文件 18312 2012-02-13 10:50 全局鼠标钩子举例\实例292——创建记录当前鼠标所在窗口标题信息的鼠标钩子DLL\MousehookDll\MousehookDll.aps
文件 3411 2012-04-05 20:57 全局鼠标钩子举例\实例292——创建记录当前鼠标所在窗口标题信息的鼠标钩子DLL\MousehookDll\MousehookDll.cpp
文件 244 2007-01-08 15:17 全局鼠标钩子举例\实例292——创建记录当前鼠标所在窗口标题信息的鼠标钩子DLL\MousehookDll\MousehookDll.def
文件 4247 2012-04-05 21:02 全局鼠标钩子举例\实例292——创建记录当前鼠标所在窗口标题信息的鼠标钩子DLL\MousehookDll\MousehookDll.dsp
文件 547 2007-01-08 14:31 全局鼠标钩子举例\实例292——创建记录当前鼠标所在窗口标题信息的鼠标钩子DLL\MousehookDll\MousehookDll.dsw
文件 246 2007-01-08 16:13 全局鼠标钩子举例\实例292——创建记录当前鼠标所在窗口标题信息的鼠标钩子DLL\MousehookDll\MousehookDll.h
文件 58368 2012-04-05 21:02 全局鼠标钩子举例\实例292——创建记录当前鼠标所在窗口标题信息的鼠标钩子DLL\MousehookDll\MousehookDll.ncb
文件 48640 2012-04-05 21:02 全局鼠标钩子举例\实例292——创建记录当前鼠标所在窗口标题信息的鼠标钩子DLL\MousehookDll\MousehookDll.opt
文件 1964 2012-04-05 20:58 全局鼠标钩子举例\实例292——创建记录当前鼠标所在窗口标题信息的鼠标钩子DLL\MousehookDll\MousehookDll.plg
文件 3101 2007-01-08 14:31 全局鼠标钩子举例\实例292——创建记录当前鼠标所在窗口标题信息的鼠标钩子DLL\MousehookDll\MousehookDll.rc
文件 2543 2007-01-08 14:31 全局鼠标钩子举例\实例292——创建记录当前鼠标所在窗口标题信息的鼠标钩子DLL\MousehookDll\ReadMe.txt
目录 0 2012-04-05 21:05 全局鼠标钩子举例\实例292——创建记录当前鼠标所在窗口标题信息的鼠标钩子DLL\MousehookDll\res\
文件 384 2007-01-08 14:31 全局鼠标钩子举例\实例292——创建记录当前鼠标所在窗口标题信息的鼠标钩子DLL\MousehookDll\Resource.h
文件 404 2007-01-08 14:31 全局鼠标钩子举例\实例292——创建记录当前鼠标所在窗口标题信息的鼠标钩子DLL\MousehookDll\res\MousehookDll.rc2
文件 214 2007-01-08 14:31 全局鼠标钩子举例\实例292——创建记录当前鼠标所在窗口标题信息的鼠标钩子DLL\MousehookDll\StdAfx.cpp
文件 1447 2007-01-08 14:31 全局鼠标钩子举例\实例292——创建记录当前鼠标所在窗口标题信息的鼠标钩子DLL\MousehookDll\StdAfx.h
目录 0 2012-04-05 21:05 全局鼠标钩子举例\实例293——调用鼠标钩子DLL,显示鼠标所在窗口的标题\
目录 0 2012-04-05 21:05 全局鼠标钩子举例\实例293——调用鼠标钩子DLL,显示鼠标所在窗口的标题\UseMouseHook\
文件 106639 2012-03-29 16:50 全局鼠标钩子举例\实例293——调用鼠标钩子DLL,显示鼠标所在窗口的标题\UseMouseHook\MousehookDll.dll
文件 215 2008-03-26 16:00 全局鼠标钩子举例\实例293——调用鼠标钩子DLL,显示鼠标所在窗口的标题\UseMouseHook\MousehookDll.h
文件 3096 2012-03-29 16:48 全局鼠标钩子举例\实例293——调用鼠标钩子DLL,显示鼠标所在窗口的标题\UseMouseHook\MousehookDll.lib
文件 3687 2008-03-26 16:00 全局鼠标钩子举例\实例293——调用鼠标钩子DLL,显示鼠标所在窗口的标题\UseMouseHook\ReadMe.txt
目录 0 2012-04-05 21:05 全局鼠标钩子举例\实例293——调用鼠标钩子DLL,显示鼠标所在窗口的标题\UseMouseHook\res\
文件 689 2008-03-26 16:00 全局鼠标钩子举例\实例293——调用鼠标钩子DLL,显示鼠标所在窗口的标题\UseMouseHook\Resource.h
文件 1078 2008-03-26 16:00 全局鼠标钩子举例\实例293——调用鼠标钩子DLL,显示鼠标所在窗口的标题\UseMouseHook\res\UseMouseHook.ico
文件 404 2008-03-26 16:00 全局鼠标钩子举例\实例293——调用鼠标钩子DLL,显示鼠标所在窗口的标题\UseMouseHook\res\UseMouseHook.rc2
文件 214 2008-03-26 16:00 全局鼠标钩子举例\实例293——调用鼠标钩子DLL,显示鼠标所在窗口的标题\UseMouseHook\StdAfx.cpp
文件 1054 2008-03-26 16:00 全局鼠标钩子举例\实例293——调用鼠标钩子DLL,显示鼠标所在窗口的标题\UseMouseHook\StdAfx.h
............此处省略11个文件信息
评论
共有 条评论