没有合适的资源?快使用搜索试试~ 我知道了~
c# 钩子函数拦截任务管理器的关闭消息详情实现介绍.docx
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 39 浏览量
2023-06-09
14:58:35
上传
评论 1
收藏 11KB DOCX 举报
温馨提示
试读
3页
代码解释: 在窗体加载时,使用SetWindowsHookEx来设置钩子函数,该函数会返回钩子句柄 设置钩子函数的委托Callback,如果拦截到任务管理器关闭消息,则在控制台输出一条信息,并返回IntPtr.Zero来拦截消息 在窗体关闭时,调用UnhookWindowsHookEx来卸载钩子 使用DllImport引入Windows API,包括SetWindowsHookEx、UnhookWindowsHookEx、CallNextHookEx、GetShellWindow等函数 需要注意的是,使用钩子函数来拦截系统消息是一种涉及到系统底层的技术操作,应该谨慎使用。少量的、恰当使用的钩子函数不会对系统造成影响,但是如果使用不当可能会影响系统稳定性和安全。
资源推荐
资源详情
资源评论
代码解释:
在窗体加载时,使用 SetWindowsHookEx 来设置钩子函数,该函数会返回钩子句柄
设置钩子函数的委托 Callback,如果拦截到任务管理器关闭消息,则在控制台输出一条信息,
并返回 IntPtr.Zero 来拦截消息
在窗体关闭时,调用 UnhookWindowsHookEx 来卸载钩子
使 用 DllImport 引 入 Windows API , 包 括 SetWindowsHookEx 、 UnhookWindowsHookEx 、
CallNextHookEx、GetShellWindow 等函数
需要注意的是,使用钩子函数来拦截系统消息是一种涉及到系统底层的技术操作,应该谨慎
使用。少量的、恰当使用的钩子函数不会对系统造成影响,但是如果使用不当可能会影响系
统稳定性和安全。
using System;
using System.ComponentModel;
using System.Runtime.InteropServices;
using System.Windows.Forms;
namespace TaskManagerInterceptor
{
public partial class Form1 : Form
{
private const int WH_CALLWNDPROCRET = 12;
private const int WM_CLOSE = 0x0010;
private delegate IntPtr HookDelegate(int nCode, IntPtr wParam, IntPtr lParam);
private IntPtr hookHandle = IntPtr.Zero;
private HookDelegate hookProc;
public Form1()
{
InitializeComponent();
}
protected override void OnLoad(EventArgs e)
{
base.OnLoad(e);
hookProc = new HookDelegate(Callback);
hookHandle = SetWindowsHookEx(WH_CALLWNDPROCRET, hookProc,
IntPtr.Zero, AppDomain.GetCurrentThreadId());
if (hookHandle == IntPtr.Zero)
{
throw new Win32Exception(Marshal.GetLastWin32Error());
}
资源评论
王大师王文峰
- 粉丝: 9590
- 资源: 1502
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功