1

有什么方法可以冻结屏幕并仅显示一个活动表单(只有该表单可以接收来自用户的输入)。

我的描述示例就像 Windows 用户从开始菜单单击关机一样。它显示关闭、重新启动等选项,并且不允许用户进行除该表单之外的输入。或者当使用 Tune Up 注册表优化器时,它会要求您关闭所有其他正在运行的应用程序,然后它会显示一个带有进度条的蓝色窗口,但用户既不能关闭此窗口也不能进行其他输入。

我知道模态形式,但有没有其他方法可以做到这一点。

任何的想法?

4

1 回答 1

0

要真正停止对其他应用程序的输入,您可能需要使用 SetWindowsHookEx() 来安装全局消息挂钩(我认为您想使用 WH_CBT 选项)以便将消息发送到其他窗口(当然您需要管理员权限执行此操作)。

但是,还有另一种方法:a) 让您的程序截取屏幕截图,b) 对位图进行后处理以将其“变灰”,以及 c) 完全全屏显示您的应用程序(调整应用程序大小的简单方法甚至覆盖任务栏)并将应用程序表单的背景设置为您在步骤 A 中截取的屏幕截图并在步骤 B 中显示为灰色。您最终得到的是一个看起来很像用户桌面的简单图像显示,但是windows当然是不可点击的。

于 2012-06-25T22:16:09.210 回答