WinApi - 如何防止窗口打开

时间:2013-05-21 16:27:52

标签: windows winapi focus

我可以禁止在Windows上打开新窗口吗?我只想防止另一个窗口偷走了我的焦点,即使是一瞬间。

这可能吗?如果是的话怎么样?

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

2 个答案:

答案 0 :(得分:2)

不,没有这样的东西(以“安全桌面”方式为模),它也是好的的东西。为什么?因为不应该。这样的程序,如果编码,甚至不让我点击我的任务栏...

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

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

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

答案 1 :(得分:1)

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

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