您好,

在Windows Vista,7或8中显示UAC消息时,在用户从消息对话框中选择之前,将无法访问背景。可以使用VB.NET程序来完成此操作,以使背景无法访问,直到用户从表单中选择了吗?

我想要的是当UAC或类似消息显示如下图时背景发生了什么,

最佳答案

这很容易做到,只需显示带有不透明度的黑色无边框表单,并在其顶部显示对话框即可。请记住,这当然不能提供与UAC提示所提供的保护级别相同的级别,您不能自己使用安全桌面。

Public Shared Function Plexiglass(dialog As Form) As DialogResult
    Using plexi = New Form()
        plexi.FormBorderStyle = FormBorderStyle.None
        plexi.Bounds = Screen.FromPoint(dialog.Location).Bounds
        plexi.StartPosition = FormStartPosition.Manual
        plexi.AutoScaleMode = AutoScaleMode.None
        plexi.ShowInTaskbar = False
        plexi.BackColor = Color.Black
        plexi.Opacity = 0.45
        plexi.Show()
        dialog.StartPosition = FormStartPosition.CenterParent
        Return dialog.ShowDialog(plexi)
    End Using
End Function

根据需要调整“不透明度”值,该值越高,背景越暗。在一个小的测试程序上看起来像这样:

08-19 15:24