我有许多执行长时间运行任务的旧版自定义应用程序。在以前版本的 Windows 中,程序在运行给定任务时会变得无响应。有时 UI 会更新,有时则不会。
然而,在 Windows 7 下,当 UI 变得无响应时,整个窗口就会变灰,并且只要任务继续运行,UI 就不会更新。
虽然这可能是由于代码错误(没有为长时间运行的任务生成单独的进程)造成的,但修改它们并不是一个选择。
是否可以禁用 Windows 7 中无响应/繁忙程序的灰色/淡出功能?
答案1
您还记得 HungAppTimeout 设置吗,他们将其与关机混在一起。它据称在这种情况下会起作用。
这是与您的情况最接近、最准确的相似之处,并附有写得很好的修复。 http://fieldp.com/myblog/2011/large-mesh-plots-revisited-program-not-responding/
我会尝试它,因为即使它是错误的,它也不会造成任何东西。
答案2
是否可以禁用 Windows 7 中无响应/繁忙程序的灰色/淡出功能?
是的,但这必须由应用程序本身完成。它必须调用DisableProcessWindowsGhosting()
函数。显然,如果你选择
那么你的应用程序将不会调用此函数,你将得到“重影”。此“重影”将无响应的窗口替换为响应式顺便说一下,允许有限数量的 UI 交互(最小化、移动和关闭)的窗口。修改它们不是一个选择