| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 623 人关注过本帖
标题:[求助]如和用钩子防止浏览器关闭
取消只看楼主 加入收藏
热情依然
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:22
帖 子:715
专家分:0
注 册:2005-4-5
收藏
 问题点数:0 回复次数:0 
[求助]如和用钩子防止浏览器关闭

#include <windows.h>

#pragma data_seg("HookSeg")
HWND hWnd = NULL;
HHOOK h_WndProc = NULL;
#pragma data_seg()


BOOL CALLBACK EnumWindowsProc(HWND hwnd,LPARAM lParam)
{
char szBuffer[500] = {'\0'};
GetWindowTextA(hwnd,szBuffer,500);

if( strcmp("about:blank - Microsoft Internet Explorer", szBuffer) == 0)
{
HWND *pWnd = reinterpret_cast<HWND*>(lParam);
*pWnd = hwnd;
return 0;
}
return 1;
}

LRESULT CALLBACK GetMessage(int nCode, WPARAM wParam,LPARAM lParam)
{
MSG *pCWPSTRUCT = (MSG*)lParam;

if( nCode >= 0 )
{
HANDLE hIeWnd = NULL;
EnumWindows(EnumWindowsProc, reinterpret_cast<LPARAM>(&hIeWnd));
if(pCWPSTRUCT->message == WM_CLOSE && hIeWnd == pCWPSTRUCT->hwnd )
{
MessageBoxA(hWnd,"不能关闭","提示",MB_OK | MB_ICONERROR);
return 0;
}
}
return CallNextHookEx(h_WndProc,nCode,wParam,lParam);

}

void SetHook(HWND hwnd)
{
hWnd = hwnd;
h_WndProc = SetWindowsHookExA(WH_GETMESSAGE , GetMessage, GetModuleHandleA("HOOK"),0);
}

void UnSetHook()
{
UnhookWindowsHookEx(h_WndProc);
}


消息是可以截获,但是renturn 0居然可以继续关闭,郁闷中,请大家指点

[此贴子已经被作者于2006-10-22 19:41:43编辑过]

搜索更多相关主题的帖子: 钩子 浏览器 
2006-10-22 19:41
快速回复:[求助]如和用钩子防止浏览器关闭
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.012018 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved