gpt4 book ai didi

winapi - 在 Win32 上创建新窗口时如何得到通知?

转载 作者:行者123 更新时间:2023-12-04 03:31:17 28 4
gpt4 key购买 nike

有没有办法使用 Win32,在创建新窗口时注册通知。我试图保留当前打开的窗口列表,但现在我只是使用 EnumWindows() 轮询当前窗口列表.

有人做过类似的事情吗?

谢谢

我不确定我这样做是否正确,但我无法触发 SetWindowsHookEx 方法。

有什么想起来的吗​​?

这是我的剪辑

[DllImport("user32.dll", SetLastError = true)]
private static extern IntPtr SetWindowsHookEx(HookType hook, HookProc callback, IntPtr hMod, uint dwThreadId);

[DllImport("user32.dll")]
private static extern int CallNextHookEx(IntPtr hhk, int nCode, IntPtr wParam, IntPtr lParam);
const int HSHELL_WINDOWCREATED = 1;

private static HookProc winDelegate = ShellHookProcDelegate;
internal static void RegisterWindowCreatedEvent()
{
SetWindowsHookEx(HookType.WH_SHELL, winDelegate, IntPtr.Zero, 0);
}

private static int ShellHookProcDelegate(int code, IntPtr wParam, IntPtr lParam)
{
if (code != HSHELL_WINDOWCREATED)
{
return CallNextHookEx(IntPtr.Zero, code, wParam, lParam);
}

//App specific code here

return CallNextHookEx(IntPtr.Zero, code, wParam, lParam);
}

最佳答案

使用 SetWindowsHookEx 设置一个 WH_SHELL 钩并寻找 HSHELL_WINDOWCREATED事件。

关于winapi - 在 Win32 上创建新窗口时如何得到通知?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1024756/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com