Windows WinApi-如何防止窗口打开

Windows WinApi-如何防止窗口打开,windows,winapi,focus,Windows,Winapi,Focus,我可以禁止在windows上打开新窗口吗?我只是想防止另一个窗口偷走我的焦点,哪怕是一秒钟 可能吗?如果是,怎么做 // not sure if I can correct 1 letter mistakes on Stackoverfl0w 您可以尝试WM_ACTIVATE,一旦收到WA_INACTIVE,将窗口设置回前台。也许你可以用WM_KILLFOCUS或者其他一些函数来尝试同样的技巧。您可以使用Spy++来调查导致您的窗口失去焦点的消息 我可以想象这样的“功能”将用于嵌入式系统上的信

我可以禁止在windows上打开新窗口吗?我只是想防止另一个窗口偷走我的焦点,哪怕是一秒钟

可能吗?如果是,怎么做

// not sure if I can correct 1 letter mistakes on Stackoverfl0w

您可以尝试WM_ACTIVATE,一旦收到WA_INACTIVE,将窗口设置回前台。也许你可以用WM_KILLFOCUS或者其他一些函数来尝试同样的技巧。您可以使用Spy++来调查导致您的窗口失去焦点的消息


我可以想象这样的“功能”将用于嵌入式系统上的信息亭模式应用程序,或者用于某种面向安全的应用程序。也许你可以告诉更多你的应用程序实际上在做什么?

不,没有这样的事情(模块化“安全桌面”场景),这也是一件好事。为什么?因为不应该有。这样一个程序,如果编码,甚至不让我点击我的任务栏

试想一下,这样一个功能是可用的。现在想象一下,两个应用程序都认为它们非常重要,因此它们应该始终具有焦点。他们都会说“我非常重要。不要让任何人偷走我的注意力。”然后。。。什么

这只是一个糟糕的设计。明智地设计你的程序,并意识到它非常非常非常非常非常非常不可能是如此重要和令人惊奇以至于用户不想切换到其他任何东西


记住一个简单的事实:我的电脑属于我,而不是你,如果我想打开一个新窗口,你是谁告诉我我不能

你能做的第二件最糟糕的事就是试图窃取前景。把它偷回来是你能做的第一件最糟糕的事。一个用户无助地盯着两个来回闪烁的窗口,没有什么好看的。你搞错了!今天发生在我身上最糟糕的事。。。遗憾的是,这不是第一次。我的抗病毒药物对我造成了伤害,没有涉及“经典”恶意软件。现在我认为这个AV是恶意软件!!!@N4P游戏玩家,这是如何影响这个问题的?你的AV是否弹出一个窗口,当你打字时,它偷走了焦点,你的击键或输入激活了一些默认的AV动作?如果是这样,你的AV程序设计很差,你应该提交一份错误报告。不要试图破坏窗口。大多数AV确实是收缩包装的恶意软件。您可以使用用户将应用于产品的相同技术来解决此问题。您将卸载它。如果您的应用程序已经有焦点,则未经允许,其他应用程序无法窃取该焦点。Windows实际上竭尽全力防止焦点窃取。有关详细信息,请参阅文档:“当用户使用另一个窗口时,应用程序无法将窗口强制置于前台。相反,Windows会闪烁窗口的任务栏按钮以通知用户。”我看不到这种“功能”有任何用处,即使在kiosk模式下也是如此。如果用户想离开应用程序点击,他们可以离开应用程序点击。听起来不错。我试试看。但我在瞬间失去焦点可能有问题。@n4pgamer你能告诉我们你想解决什么实际问题吗?@NikBougalis我确实说过:我不想让我的应用失去焦点。问题并没有那么复杂,我无法详细说明我的程序在做什么。@NikBougalis你的意思是,例如在ATM机上,你可以运行“扫雷舰”吗?它不会是一个经典的桌面应用程序。这样的设计其实并不少见。我为一个需要禁用大部分Windows功能的生产应用程序做了一些类似的操作。它是否是桌面应用程序与此无关。你试图以错误的方式解决问题。正确的方法不是防止焦点被窃取。正确的方法是让失去焦点不重要。在这种情况下,失去焦点是不可接受的。stackoverflow不是为了帮助解决问题,而不是说“不要这样做”@n4pgamer如果你的问题是如何射中自己的脚,我们的目的不是给你画一个目标和一把上膛的枪。我们的目的是想问:“你为什么要做那么愚蠢的事?”我们现在是不是要隐喻我们睡觉?你的“比喻”不好。我的脚已经中弹了。我正在努力避免这种情况再次发生!我觉得你更像是想告诉莱特兄弟“不要尝试飞行,因为人会死的!”请帮我回答我的问题!