C#中有一種方法可以將菜單項全局添加到所有活動窗口上的所有系統菜單上嗎?也許在「最大化」命令下?修改全局系統菜單
修改全局系統菜單
回答
這不能在託管代碼中完成。即使在無法使用的代碼中,它也會非常困難。基本上你必須注入你的代碼到每個進程中,然後插入項目到本地系統菜單中,然後鉤住主窗口proc來截獲WM_SYSCOMMAND消息,這樣你可以使菜單項執行某些操作。
您可以編寫代碼,只需使用FindWindow
得到窗口句柄,然後SetWindowLong
改變窗口樣式添加WS_TOPMOST風格(最)窗口(允許的安全性)。
但是,您將無法將此用戶界面放入其他進程的系統菜單中。
感謝您的答覆約翰。所以最好的方法是寫一些類似Spy ++的東西,讓你「選擇」一個窗口,然後在該窗口上使用SetWindowLong來改變窗口樣式? – Icemanind
是的,那將是方式。 –
在http://stackoverflow.com/q/138616/103167上描述了一種無代碼注入的優雅方法 –
- 1. 目標全局系統
- 2. 修改菜單項
- 3. Android菜單修改?
- 4. 全局變量修改TCL
- 5. 修改全局變量Ant
- 6. ios8修改系統鍵盤
- 7. Drupal修改登錄系統
- 8. 如何修改由系統
- 9. 修改JRE系統庫
- 10. 修改器系統C#
- 11. 剪輯修改系統
- 12. 修改SharePoint系統文件
- 13. 繞過joomla菜單系統
- 14. 隱藏菜單系統
- 15. 外系統常用菜單
- 16. jQuery的菜單系統
- 17. 遞歸菜單系統
- 18. 系統菜單和委託
- 19. 菜單系統教程
- 20. 動態菜單系統
- 21. 由系統動態客戶關係管理系統2015修改
- 22. 修改「通話中」菜單
- 23. sbt系統級全局.sbt文件
- 24. 修改WordPress自定義標記系統的標記系統
- 25. purrr:無法修改全局列表
- 26. C++:不能修改全局變量
- 27. 臨時修改全局變量
- 28. 使用jquery修改全局css聲明
- 29. 從控制器修改全局值AngularJS
- 30. 從線程修改全局ArrayList
如果您的設計需要您這樣做,您需要重新考慮您的設計。 –
我正在嘗試編寫一個程序,該程序將允許我「插入」任何窗口,以便它始終位於所有其他窗口之上。 – Icemanind
如果用戶有另一個應用程序使用相同的技術,最終將窗口置於頂部,誰會獲勝? – BFree