【发布时间】:2018-10-05 00:07:39
【问题描述】:
我在 Windows 10 上有一个 MFC 应用程序,它禁用了最大化按钮,因为它不是为调整大小而设计的。如果程序不是以管理员身份运行/提升的,则用户可以将窗口最小化到任务栏,然后像平常一样恢复/最大化它。但是,如果应用程序以管理员/提升权限运行,则窗口可以最小化到任务栏,但永远不会恢复/最大化。
我尝试过的事情:
- 左键单击任务栏上的图标 - 没有任何反应。
- 将鼠标悬停在任务栏上的图标上,然后悬停在小预览上 图标上方 - 这会显示窗口,但一旦停止就会消失 悬停并点击小预览没有任何作用。
- 启用最大化按钮并将 NoActivate 属性设置为 true - 无济于事。
- Alt-tabbing 应用程序没有任何作用。
- 当应用程序出现此问题时,我使用 spy++ 64 检查了该应用程序,并且可以看到消息,但我不确定出了什么问题。见下文
这是成功(非管理员)最小化然后最大化的日志,其中最大化尝试发生在 ID 290 附近:https://pastebin.com/kRT4ABrC
这是不成功的(管理员)最小化然后最大化的日志,其中最大化尝试发生在 ID 176 附近:https://pastebin.com/nAiXUa8p
任何人有什么想法有什么问题吗?看起来不成功的日志缺少一堆 WM_ACTIVATEAPP 消息,但我不确定还有什么问题。
"code" necessary for pastebin link posts
【问题讨论】:
-
普通的 Win32 程序不应该这样做。代码是你自己写的吗?如果没有,请查看是否可以在 C++ 代码中的任何位置找到
IsUserAnAdmin或Elevated。当程序检测到它在管理员模式下运行时,可能会做一些奇怪的事情。 -
如果没有minimal reproducible example,仅仅从症状描述来解决这个问题是没有意义的。
-
您正在寻找的是默认行为。它以这种方式工作,无需执行任何操作。由于它对您不起作用,因此您已经编写了代码,该代码会更改默认行为。我们需要查看minimal reproducible example 来帮助您了解它是什么。
-
@zett42 在这种情况下这是不可能的。
-
@IInspectable 在这种情况下这是不可能的。
标签: mfc windows-10 windows-messages