从任务栏中删除窗口,Windows 7
我这里有一个小的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