c#钩子监听系统句柄
时间: 2024-02-03 16:01:40 浏览: 33
以下是使用C#钩子监听系统句柄的示例代码:
```csharp
using System;
using System.Diagnostics;
using System.Runtime.InteropServices;
namespace HookTest
{
class Program
{
private const int WH_CBT = 5;
private const int HCBT_CREATEWND = 3;
private delegate IntPtr HookProc(int nCode, IntPtr wParam, IntPtr lParam);
[DllImport("user32.dll", SetLastError = true)]
private static extern IntPtr SetWindowsHookEx(int idHook, HookProc lpfn, IntPtr hMod, uint dwThreadId);
[DllImport("user32.dll", SetLastError = true)]
private static extern bool UnhookWindowsHookEx(IntPtr hhk);
[DllImport("user32.dll", SetLastError = true)]
private static extern IntPtr CallNextHookEx(IntPtr hhk, int nCode, IntPtr wParam, IntPtr lParam);
[DllImport("kernel32.dll", SetLastError = true)]
private static extern IntPtr GetModuleHandle(string lpModuleName);
static void Main(string[] args)
{
HookProc hookProc = new HookProc(CbtHookProc);
IntPtr hookId = SetWindowsHookEx(WH_CBT, hookProc, GetModuleHandle(Process.GetCurrentProcess().MainModule.ModuleName), 0);
Console.WriteLine("Press any key to exit...");
Console.ReadKey();
UnhookWindowsHookEx(hookId);
}
private static IntPtr CbtHookProc(int nCode, IntPtr wParam, IntPtr lParam)
{
if (nCode == HCBT_CREATEWND)
{
Console.WriteLine("New window created: {0}", wParam);
}
return CallNextHookEx(IntPtr.Zero, nCode, wParam, lParam);
}
}
}
```
该示例代码使用了`SetWindowsHookEx`函数来设置钩子,监听系统句柄的创建事件。在`CbtHookProc`方法中,如果收到了`HCBT_CREATEWND`消息,就会输出新创建窗口的句柄。
相关推荐
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)