意欲在钩子里隐藏即将显示的窗口
试图在钩子里隐藏即将显示的窗口
先上代码
/////////////////////////在dll里的钩子函数//////////
/////////////////////////////注入成功是肯定的/////////////////////////
LRESULT CALLBACK CallWndProc(int nCode,WPARAM wParam,LPARAM lParam)
{
if (nCode<0 )
{
return CallNextHookEx(ShellHook,nCode,wParam,lParam); //
}
if(NULL!=lParam)
{
CWPSTRUCT *pCwp=NULL;
pCwp=(CWPSTRUCT*)lParam;
if(WM_WINDOWPOSCHANGING==pCwp->message)
{
char classname[256];
::GetClassName(pCwp->hwnd,classname,256);
CString temp_classname;
temp_classname.Format("%s",classname);
if(temp_classname=="TDLFrame")//
{
WINDOWPOS *pWndPos = (WINDOWPOS *)lParam;
if (pWndPos->flags&SWP_SHOWWINDOW)
{
pWndPos->flags &=0xFFFFFFBF;
//ShowWindow(pCwp->hwnd,SW_HIDE);//这样会闪一下,效果不好
}
else return CallNextHookEx(ShellHook,nCode,wParam,lParam); //传递钩子信息
}
}
else return CallNextHookEx(ShellHook,nCode,wParam,lParam); //传递钩子信息
}
}
这段代码不知道为什么没有效果,如果强制ShowWindow(pCwp->hwnd,SW_HIDE);//这样会闪一下,效果不好
------解决方案--------------------
The CallWndProc hook procedure can examine the message, but it cannot modify it.
Hook一下WH_CBT当类型为HCBT_CREATEWND的时候,或者就是hook一下ShowWindow方法
------解决方案--------------------
窗口重要吗?不重要直接关闭了就行,还理他干嘛?
------解决方案--------------------
即将显示的窗口要隐藏好像一定会闪一下的]
先不说钩子不钩子
直接自己写的窗口想实现类似的功能一般是在OnNcPaint里
这样窗口不会闪
但是焦点还是会闪
先上代码
/////////////////////////在dll里的钩子函数//////////
/////////////////////////////注入成功是肯定的/////////////////////////
LRESULT CALLBACK CallWndProc(int nCode,WPARAM wParam,LPARAM lParam)
{
if (nCode<0 )
{
return CallNextHookEx(ShellHook,nCode,wParam,lParam); //
}
if(NULL!=lParam)
{
CWPSTRUCT *pCwp=NULL;
pCwp=(CWPSTRUCT*)lParam;
if(WM_WINDOWPOSCHANGING==pCwp->message)
{
char classname[256];
::GetClassName(pCwp->hwnd,classname,256);
CString temp_classname;
temp_classname.Format("%s",classname);
if(temp_classname=="TDLFrame")//
{
WINDOWPOS *pWndPos = (WINDOWPOS *)lParam;
if (pWndPos->flags&SWP_SHOWWINDOW)
{
pWndPos->flags &=0xFFFFFFBF;
//ShowWindow(pCwp->hwnd,SW_HIDE);//这样会闪一下,效果不好
}
else return CallNextHookEx(ShellHook,nCode,wParam,lParam); //传递钩子信息
}
}
else return CallNextHookEx(ShellHook,nCode,wParam,lParam); //传递钩子信息
}
}
这段代码不知道为什么没有效果,如果强制ShowWindow(pCwp->hwnd,SW_HIDE);//这样会闪一下,效果不好
------解决方案--------------------
The CallWndProc hook procedure can examine the message, but it cannot modify it.
Hook一下WH_CBT当类型为HCBT_CREATEWND的时候,或者就是hook一下ShowWindow方法
------解决方案--------------------
窗口重要吗?不重要直接关闭了就行,还理他干嘛?
------解决方案--------------------
即将显示的窗口要隐藏好像一定会闪一下的]
先不说钩子不钩子
直接自己写的窗口想实现类似的功能一般是在OnNcPaint里
这样窗口不会闪
但是焦点还是会闪