是否可以通过拦截消息来获知某窗口程序启动?如何判断呢?
解决方案 »
- 请教一个关于CDib类指针的问题。
- 广播的代码!
- 关于两个类互相调用?
- ====> 鉴于现在研究 IOCP 的新手比较多,为了大家少走弯路,在此希望用 IOCP 成功做出系统的大虾们讨论下系统设计和相关的心得体会。<===
- 怎么样取的组合框的编辑框的内容??
- 在运行期才能得知其信息的接口,如何调用它的方法?
- 如何用 MFC 编写多线程?
- 关于全局函数、api、mfc函数的问题
- Crystal report 的高难度打印要求,高手请进,时间很急!
- 关于TextOut输出中文的问题?急!急!急!----在线等
- 一个很简单,但有点复杂的问题,谁能帮我解答一下,感恩不尽
- 请教怎么判断char型数组的前某些元素与另一个相等?
static LRESULT WINAPI CallWndRetProc (int nCode, WPARAM wParam, LPARAM lParam
{ if(nCode < 0)
{
CallNextHookEx(g_hhookQQ, nCode, wParam, lParam);
return 0;
}
LPMSG pMsg = (LPMSG)lParam;
//下面怎么判断啊
.......................
wParam:Handle to the created window
lParam:无用有了窗口句柄,你就......不过我没试过。
LRESULT CALLBACK ShellProc(int code, WPARAM wParam, LPARAM lParam)
{
AFX_MANAGE_STATE(AfxGetStaticModuleState());
try
{
if (code >= 0 && code == HSHELL_WINDOWCREATED )
{
HWND hwnd=(HWND) wParam;
if(hwnd != NULL)
{
char strclass[256],strcaption[256];
memset(strclass,0,256);
memset(strcaption,0,256);
GetClassName(hwnd,strclass,256);
GetWindowText(hwnd,strcaption,256);
CString str(strcaption);
char szPath[256];
GetModuleFileName(GetModuleHandle(SPYOE_DLL),szPath,256);
if(str.Find("Outlook Express") != -1 && !strcmp(strclass,"Outlook Express Browser Class"))
{
...
}
}
{
switch(nCode)
{
case HSHELL_WINDOWCREATED:
//wParam就是主窗体的窗体句柄,你可以对它进行处理,当然首先的判断是不是目标窗体了
break;
}
return CallNextHookEx(g_hProc, nCode, wParam, lParam);
}