从任务栏中删除窗口,Windows 7

2 投票
1 回答
823 浏览
提问于 2025-04-16 23:59

我这里有一个小的Tkinter应用程序,还有一个指向Tkinter窗口的句柄。我想做的是通过一些Windows的API调用,把这个窗口从任务栏中去掉。简单来说,我就是不想让这个窗口在任务栏上显示。

import Tkinter as tk
import string

import win32ui
import win32con

root = tk.Tk()

handle = string.atoi(root.wm_frame(), 0)
winhandle = win32ui.CreateWindowFromHandle(handle)

root.mainloop()

1 个回答

4

希望这些信息能对你有所帮助,或者至少能给你一些指导。

我不太确定在Python中怎么做,但关于WinAPI部分,这和窗口的扩展样式有关。MSDN上是这么说的:

当一个应用程序创建一个没有所有者的窗口时,系统会在任务栏上创建一个按钮。为了确保这个窗口的按钮出现在任务栏上,你需要创建一个没有所有者的窗口,并使用WS_EX_APPWINDOW这个扩展样式。如果你想防止窗口按钮出现在任务栏上,就要用WS_EX_TOOLWINDOW这个扩展样式来创建没有所有者的窗口。另一种方法是创建一个隐藏的窗口,并让这个隐藏窗口成为你可见窗口的所有者。

完整参考资料在这里|

在C或C++中,你可以在用CreateWindowEx创建窗口时指定扩展样式。你也可以在窗口创建后用SetWindowLongPtr来修改样式。

补充:我发现了一个很有前景的Python方法:PyCWnd.ModifyStyleEx

撰写回答