Windows+D已禁用,但无法工作

本文关键字:工作 Windows+D | 更新日期: 2023-09-27 17:59:45

我有两个窗体MainForm和MinimizedMainForm。我想对这两个窗体禁用Windows+D。两个窗体的父窗体都是第三个窗体FormBase。我使用了以下代码禁用Windows+D

private const in GWL_HWNDPARENT =-8
IntPtr hprog = NativeMethods.FindWindowEx(NativeMethods.FindWindowEx(NativeMethods.FindWindow("Progman", "Program Manager"),
                          IntPtr.Zero, "SHELLDLL_DefView", ""),
                          IntPtr.Zero, "SysListView32", "FolderView");
        NativeMethods.SetWindowLong(this.Handle, GWL_HWNDPARENT, hprog);

我面临的问题是,如果我按下Win+D,我的MainForm永远不会最小化。对于MinimizedForm的首次发布,如果我按Win+D,它不会被最小化。但对于minimizedMainForm的第二次+第二次加载,如果我按Win+D,Form就会最小化。我已经在这两个表单的FormLoad事件上添加了上面的代码。当我点击MainForm上的面板时,MinimizedMainForm就会打开,反之亦然。MainForm是我项目的起始形式。

我应该怎么做才能阻止表单最小化2nd+loadForm事件?

Windows+D已禁用,但无法工作

也许您不需要阻止最小化可以最小化的窗口,而是必须创建不能最小化的窗口:MinimizeBox = false?(我敢打赌,这不可能那么简单,但我不会写评论,所以这里有一个解决方案=D)

Win+D基本上不是为了最小化窗口,而是为了显示桌面。Win+D=显示桌面。所以,即使您的窗口并没有最小化框,它也会被最小化。

此外,当你按下Win+D时,不是你的应用程序在处理它,而是窗口本身在处理它——所以它永远不会访问你的应用,所以如果你在应用程序中处理它,那就没有意义了。

尝试找出一些破解你的应用程序,你停止窗口处理Win+D密钥。

注册表中有一个密钥

HKEY_CURRENT_USER''Software''Microsoft''Windows''CurrentVersion''Policies''Explorer

在此处更改热键的值将禁用Win+D组合,但不建议这样做,因为当您的应用程序离开焦点时,您必须将其恢复。

是的,如果您正在制作小部件,请遵循创建小部件的要求。它将自动为您提供此类功能