这个问题很多,但我找不到工作方法/方法 - 除了第三方申请。
我很确定,或者至少我非常希望解决这个问题确实存在。
正如标题所说,我想像每个第三个应用程序一样禁用窗口8手势(SkipMetroSuite,ClassicShellMenu或w / e)。
我需要将它内置在我的应用中,因为我无法在我的应用专用于我的应用本身的compter上安装任何内容...
有没有办法在C#中做到这一点?
修改
我亲自向经典外壳菜单开发人员询问他的程序是如何工作的,这里是答案:
原理是在窗口的线程中注入一个消息钩子 类“ApplicationManager_DesktopShellWindow”,然后监听鼠标 使用类“EdgeUiInputWndClass”发送到窗口的消息,并隐藏 那些窗户。当我的程序存在时,它会重新显示它的所有窗口 隐藏了。
他还提到我可以在这里找到解决方案: Classic Shell src
但是有一个问题,解决方案是在c ++中,我不知道如何将它移植到c#所以我将非常感谢你的帮助。
解决方案在ClassicStartMenuDLL.cpp中,它位于ClassicStartMenuDLL解决方案中。
答案 0 :(得分:5)
要执行的操作的第一步是禁用Metro模式(开始屏幕图块)。
您可以通过注册表编辑实现此目的,您可以通过编程方式进行编辑。
感兴趣的条目如下:
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\RPEnabled
您需要将此设置为0
接下来,您要禁用“热门角落”。这也是一个注册表编辑,可以通过编程方式完成。
感兴趣的条目如下:
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\ImmersiveShell
创建一个名为EdgeUI的新密钥,并在thay密钥下创建以下DWORD条目:
将两个值都设为1
由于这些都是HKCU设置(即当前用户),因此只需简单注销就可以使它们生效。
或者,您可以终止资源管理器进程,但不建议这样做。
如果它不适合您,请先尝试使用现成的注册表文件进行测试,因为您可能做错了什么 - > Disable Charms & Switcher