gpt4 book ai didi

c++ - Win32 : How to hide 3rd party windows in taskbar by hWnd

转载 作者:IT老高 更新时间:2023-10-28 22:19:46 48 4
gpt4 key购买 nike

我必须在第三方库中隐藏弹出窗口。

我已经用 SetWindowsHookEx 实现了 windows 钩子(Hook)的东西。并了解所有新创建的 hWnd(s)。我收听 HSHELL_WINDOWCREATED 回调并执行以下操作:

long style= GetWindowLong(hWnd, GWL_STYLE);
style &= ~(WS_VISIBLE); // this works - window become invisible

style |= WS_EX_TOOLWINDOW; // flags don't work - windows remains in taskbar
style &= ~(WS_EX_APPWINDOW);

SetWindowLong(hWnd, GWL_STYLE, style);

在任务栏中隐藏新创建的窗口我做错了什么?

最佳答案

在使用SetWindowLong之前,先调用ShowWindow(hWnd, SW_HIDE),然后调用SetWindowLong,再调用ShowWindow 再次像 ShowWindow(hWnd, SW_SHOW)。所以您的代码将如下所示:

long style= GetWindowLong(hWnd, GWL_STYLE);
style &= ~(WS_VISIBLE); // this works - window become invisible

style |= WS_EX_TOOLWINDOW; // flags don't work - windows remains in taskbar
style &= ~(WS_EX_APPWINDOW);

ShowWindow(hWnd, SW_HIDE); // hide the window
SetWindowLong(hWnd, GWL_STYLE, style); // set the style
ShowWindow(hWnd, SW_SHOW); // show the window for the new style to come into effect
ShowWindow(hWnd, SW_HIDE); // hide the window so we can't see it

这是来自 Microsoft's Website 的相关引用:

To prevent the window button from being placed on the taskbar, create the unowned window with the WS_EX_TOOLWINDOW extended style. As an alternative, you can create a hidden window and make this hidden window the owner of your visible window.

The Shell will remove a window's button from the taskbar only if the window's style supports visible taskbar buttons. If you want to dynamically change a window's style to one that doesn't support visible taskbar buttons, you must hide the window first (by calling ShowWindow with SW_HIDE), change the window style, and then show the window.

关于c++ - Win32 : How to hide 3rd party windows in taskbar by hWnd,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7219063/

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