是否有任何方法只檢索任務欄上的窗口?在Windows XP中的任務欄上枚舉窗口,無需P/Invoke使用C#
我想製作一個自定義的「任務欄」,它可以按任意順序對應用程序進行分組(不僅僅是像默認窗口任務分組這樣的常見順序)。
是否有任何方法只檢索任務欄上的窗口?在Windows XP中的任務欄上枚舉窗口,無需P/Invoke使用C#
我想製作一個自定義的「任務欄」,它可以按任意順序對應用程序進行分組(不僅僅是像默認窗口任務分組這樣的常見順序)。
您必須使用P/Invoke。不幸的是,沒有標準的方法來確定一個窗口是否會出現在任務欄(或alt + tab)中:你只能猜測。
這裏有一個很老的例子在VB:http://www.thescarms.com/VBasic/alttab.aspx
而在OnTopReplica,我實現它以類似的方式。您可以查看source code(查看OnTopReplica/WindowSeekers/TaskWindowSeeker.cs
)。
一般情況下,沒有P/Invoke - no。但是,如果您只關心.NET過程中的受管理的Windows窗體窗口,則可以循環使用Application.OpenForms
並檢查屬性,尤其是Form.ShowInTaskbar
。對於WPF,它是Application.Windows
。
我想重複任務欄項目。到目前爲止,使用p/invoke,我在猜測時是準確的,但這只是猜測。例如,計算器不是應用程序窗口。即使它顯示在任務欄中,我也必須明確檢查字符串「計算器」,這是不好的代碼。我希望有一種方法可以肯定地知道,但我找不到它。 – 2010-10-30 03:49:24