VB.NET - 背景在UAC消息中淡出?

Cod*_*e K 2 vb.net winapi uac fade winforms

你好,

UAC被显示在Windows Vista中,7或8消息,直到用户从消息对话框选择背景变得不可访问.这可以用VB.NET程序完成,以使背景无法访问,直到用户从表单中选择?

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

在此输入图像描述

Han*_*ant 8

这很容易做到,只需显示一个带有不透明度的黑色无边框形状,并在其上面显示对话框.请记住,这当然不能提供与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
Run Code Online (Sandbox Code Playgroud)

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

在此输入图像描述