这个问题被问了很多,但我找不到工作方法/方法 - 除了第三方应用程序。
我很确定,或者至少我非常希望这个问题的解决方案确实存在。
正如标题所说,我想像每三个应用程序(SkipMetroSuite、ClassicShellMenu 或 w/e)一样禁用窗口 8 手势。
我需要它内置在我的应用程序中,因为我无法在我的应用程序专用的计算机上安装任何东西,但我的应用程序本身...
有没有办法在 C# 中做到这一点?
编辑:
我亲自询问了 Classic Shell Menu 的开发者他的程序是如何工作的,答案如下:
The principle is to inject a message hook in the thread of window with class “ApplicationManager_DesktopShellWindow”, then listen for mouse messages sent to windows with class “EdgeUiInputWndClass”, and hide those windows. When my program exists it reshows all windows that it has hidden.
他还提到我可以在这里找到解决方案: Classic Shell src
但是有一个问题,解决方案是在 C++ 中,我不知道如何将它移植到 C#,因此非常感谢你的帮助。
解决方案在 ClassicStartMenuDLL 解决方案中的 ClassicStartMenuDLL.cpp 中。
最佳答案
您要做的第一步是禁用 Metro 模式(开始屏幕图 block )。
您可以通过注册表编辑来实现这一点,您可以通过编程方式进行。
感兴趣的条目如下:
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\RPEnabled
你需要将它设置为0
接下来,您要禁用“热角”。这也是可以通过编程方式完成的注册表编辑。
感兴趣的条目如下:
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\ImmersiveShell
创建一个名为 EdgeUI 的新 key ,并在该 key 下创建以下 DWORD 条目:
- 禁用TLcorner
- 禁用 TRcorner(Windows 8.1+)
- 禁用CharmsHint
将两个值都设置为 1
由于这些都是 HKCU 设置(即当前用户),因此只需简单注销即可使它们生效。
或者,您可以终止资源管理器进程,但不推荐这样做。
如果它不适合您,请先尝试使用现成的注册表文件对其进行测试,因为您可能做错了什么 -> Disable Charms & Switcher
关于c# 如何以编程方式禁用 Windows 8 特定功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20540526/