2011-08-19 3 views
1

У меня есть небольшое приложение Tkinter здесь, а также дескриптор окна Tkinter. То, что я пытаюсь сделать, это удалить окно с панели задач, используя некоторую комбинацию вызовов Windows API. В принципе, я не хочу, чтобы окно отображалось в панели задач.Удаление окон из панели задач, Windows 7

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() 
+0

Там есть пример делает обратное на https://stackoverflow.com/a/30819099/291641, который может помочь. Если вы используете 'overrideredirect', окна игнорируются панелью задач, но в связанном ответе кто-то хотел, чтобы такое окно отображалось на панели задач. Overrideredirect останавливает окно приложения от оформления оконным менеджером, поэтому вы можете не захотеть его использовать, и поэтому скрипка со стилями окон может быть уместна. – patthoyts

ответ

4

Я надеюсь, что это поможет или, по крайней мере, проведет вас как-то. Я не уверен, как это сделать в python, но, говоря о части winapi, это связано с стилем window ex. Это то, что MSDN говорит:

Shell создает кнопку на панели задач всякий раз, когда приложение создает окно, которое не принадлежит. Чтобы кнопка окна была размещена на панели задач, создайте незавершенное окно с расширенным стилем WS_EX_APPWINDOW. Чтобы кнопка окна с была помещена на панель задач, создайте незанятое окно с расширенным стилем WS_EX_TOOLWINDOW. В качестве альтернативы вы можете создать скрытое окно и сделать это скрытое окно владельцем вашего видимого окна .

Complete reference here |

В C или C++ вы указываете стиль ex при создании окна с CreateWindowEx. Вы также можете изменить стиль после создания окна с помощью SetWindowLongPtr.

Edit: Я нашел это очень перспективный метод Python: PyCWnd.ModifyStyleEx

+0

Не могли бы вы привести пример, используя метод, упомянутый в редактировании? – Nae