C#中是否有办法将菜单项全局添加到所有活动窗口的所有系统菜单中?也许在“最大化”命令下?
答案 0 :(得分:4)
这不能在托管代码中完成。即使在无人值守的代码中也会非常困难。基本上你必须将代码注入每个进程,然后将项插入本地系统菜单,然后挂钩主窗口proc来拦截WM_SYSCOMMAND消息,这样你就可以让菜单项做一些事情。
您可以编写将WS_TOPMOST样式添加到(大多数)窗口(安全许可)的代码,只需使用FindWindow
获取窗口句柄,然后使用SetWindowLong
更改窗口样式。
但您无法将此UI用于其他进程的系统菜单。
答案 1 :(得分:0)
您可以通过在exe文件中用C#编写所有逻辑来做到这一点。您还必须用C / C ++编写一些代码作为钩子,这会将事件从菜单项发送到exe文件。您可以在这里https://github.com/AlexanderPro/SmartSystemMenu
找到示例