如何找到哪個Windows進程顯示給定的任務欄系統托盤圖標?哪個Windows進程顯示給定的任務欄系統托盤圖標?
回答
Shell_NotifyIcon作品發送特殊WM_COPYDATA message to the taskbar,如果注入到Explorer和子類,你可以抓住這個消息的任務欄,然後你可以通過調用GetWindowThreadProcessId上COPYDATAstruct.NOTIFYICONDATA.hwnd得到的進程ID。
...當然,這是一個黑客攻擊,依賴於可能在任何時候都會改變的無證信息!
我不相信這是可能的。當然,Spy ++報告通知區域是一個名爲「用戶推薦通知區域」的窗口。此窗口最終會與桌面窗口關聯,並且與創建通知圖標的進程沒有明顯關聯。
好了,由可能我的意思是可以不訴諸黑客像安德斯表明這是毫無疑問可行的,但不是我想象中的OP正在尋找!
那麼,這個問題被標記爲調試。回到當天,有一個名爲TraySaver的產品做了這個,一些MS KB文章甚至連接到它=) – Anders 2011-03-02 13:13:53
@Anders我把調試標籤意味着OP正在試圖找出許多是哪個過程運行是負責該圖標的人。如果是我,我會在Process Explorer中查看描述和公司名稱,並查看是否可以找到匹配項。然後我會殺死這個進程,看看圖標是否消失! – 2011-03-02 14:49:34
我剛剛意識到,在Windows 7中,「選擇哪些圖標和通知出現在任務欄上」菜單在這裏有所幫助。通過右鍵單擊任務欄找到它,轉到「屬性」,然後單擊「通知區域」框架中的「自定義...」按鈕。
該窗口中的每一行代表Windows資源管理器已經看到的任務欄圖標。在左邊的兩個rwos中,我相信最上面的是過程的描述,如任務管理器中所示,最下面的是顯示任務欄圖標的窗口的窗口標題。
這將幫助我追蹤我原來的問題! VisualSVN彈出一個'註冊我!儘管沒有明顯的VisualSVN進程正在運行,但系統托盤中仍然有一點麻煩。最後我注意到,當我關閉Visual Studio時,這個煩人的窗口消失了,所以顯然在Visual Studio中加載的VisualSVN加載項DLL正在創建nag窗口。
- 1. 如何取消任務欄按鈕和顯示系統托盤圖標
- 2. 強制Windows顯示系統托盤圖標
- 3. 如何顯示C#窗口服務的系統托盤圖標?
- 4. 在系統托盤中顯示標籤
- 5. 系統托盤圖標
- 6. 系統托盤圖標
- 7. wxPython系統托盤圖標
- 8. 如何在Windows中製作任務欄(系統托盤)應用程序
- 9. 在Windows服務器中的系統托盤圖標的問題
- 10. Qt多個系統托盤圖標
- 11. 如何隱藏任務欄系統托盤中的JFrame
- 12. C#Windows應用程序didnt正確顯示在系統托盤
- 13. 檢測系統托盤\任務欄方向(X11)
- 14. SWT系統托盤 - Linux的GTK侏儒托盤圖標上盤
- 15. Windows系統托盤應用程序
- 16. 使用系統托盤圖標創建後臺進程
- 17. 更改系統托盤圖標圖像
- 18. Adobe空氣透明Windows系統托盤圖標顯示爲黑色塊
- 19. Windows Azure開發結構圖標不顯示在系統托盤上
- 20. 扭曲的系統托盤圖標
- 21. C++中的系統托盤圖標
- 22. 沒有圖標的Java系統托盤
- 23. qt5.5不顯示系統托盤
- 24. 系統托盤displayMessage()沒有顯示
- 25. 爲Qt定製系統托盤圖標「氣球工具提示」?
- 26. 如何在Java中(不在系統托盤中)在Windows任務欄中創建圖標?
- 27. 刪除Windows Phone系統托盤進度指示器
- 28. Winforms - 什麼是一個很酷的任務欄/系統托盤通知方法?
- 29. 消失系統托盤圖標
- 30. 單擊系統托盤圖標Python Win32
如果你打算依賴無證的實現細節,爲什麼還要花費所有的時間呢?您可以直接通過TB_GETBUTTON和ReadProcessMemory(http://www.ureader.com/msg/14841415.aspx) – Luke 2011-03-02 13:35:31
@Luke讀取內部結構:並且可以在Win7上使用隱藏的項目嗎? – Anders 2011-03-02 15:38:41
工具欄類支持隱藏按鈕,但我想這將取決於資源管理器如何實現隱藏的圖標(它是一個隱藏的按鈕或根本沒有按鈕?)。只有一種方法可以找出答案。 – Luke 2011-03-02 18:29:09