注册 登录
编程论坛 VB.NET论坛

实在搞不定了,想用VB.NET屏蔽弹出窗

guchew 发布于 2017-01-18 13:10, 2501 次点击
有个程序经常弹出一个信息窗体,本打算通过修改SHOWWINDOW的API地址达到屏蔽的目的,但这样该程序会报错。于是我想到通过HOOK WM_SHOWWINDOW 截获弹出窗,向它发送关闭消息。但不知道用能否做到。做钩子实在是个难点,有关资料很少。我甚至不知道该用哪个类型的钩子。在网上找到一段相关的C语言代码,也不知是否正确:
LRESULT   CALLBACK  CallWndProc(   
int   nCode,
WPARAM   wParam,   
LPARAM   lParam   
)   
{   
CWPSTRUCT  *pCwp=NULL;   
TCHAR   strClassName[127];   
HWND   hWnd=NULL;   
unsigned   long   ulStyle =0;   
BOOL   bIsClosed=FALSE;   
if(nCode<0)   
{   
return   CallNextHookEx(gHook,nCode,wParam,lParam);   
}   

if(NULL!=lParam)   
{   
pCwp=(CWPSTRUCT*)lParam;   
if(WM_SHOWWINDOW==pCwp->message)   
{   //判断下pCwp->hwnd是什么
//printf("%d",pCwp->hwnd);

::GetClassName(pCwp->hwnd,strClassName,128);   
.....
}
3 回复
#2
guchew2017-01-20 23:15
估计对此无能为力,只能尝试用VC了。
#3
haigecnpeng2017-03-25 23:49
是可以的,添加全局钩子,度娘一搜一大把
#4
guchew2017-04-09 11:15
回复 3楼 haigecnpeng
还真难度娘到相关代码,你得看清楚我的问题。网上能找到钩子基本上全是鼠标键盘之类的,再说用全局钩子也不是明智选择。我是用C++写个DLL搞定的。
1