发生超时时模糊/隐藏窗口

时间:2013-04-26 18:50:56

标签: c# .net security

我有一个内置超时功能的应用程序,这将在一段时间不活动后激活,并提示用户输入密码。

出现此密码屏幕时,有时可能仍会读取此窗口后面的一些敏感数据。

理想情况下,我想隐藏或模糊密码对话框后面的窗口。但我愿意接受可能相关的其他建议。

我假设我可以迭代所有打开的窗口,并将它们最小化,或者对它们做一些其他的时髦,以使它们上的数据不可读。

任何想法?

谢谢,Rich

2 个答案:

答案 0 :(得分:0)

好的,我用以下代码实现了这个......

        foreach (Form f in Application.OpenForms)
        {
            f.Visible = false;
        }
        PasswordPrompt.ShowDialog();
        PasswordPrompt.Dispose();
        foreach (Form f in Application.OpenForms)
        {
            f.Visible = true;
        }

&#39> opactity'选项不起作用,因为缩略图仍然显示具有完全不透明度的形式,虽然几乎不可能读取,但并不理想。

@Ginosaji,如果你想发一个类似的答案,我会给你一个' tick'在您的回答旁边,因为您的评论指出了我正确的方向。

答案 1 :(得分:-2)

Form.Hide()是您打算做的最简单的解决方案。实际上,只是将不透明度设置为0.1将隐藏您的表单,只能看到“轮廓的幽灵”。但是,如果您对某些美学展示感兴趣,那么您必须即兴发挥。例如,下面的代码将逐渐使您的表单透明,然后返回不透明:

private void frmOpacity_Load(object sender, EventArgs e)
{
this.Opacity = 0;
for (double i = -1; i <= 1; i+= 0.005)
{
this.Opacity = System.Math.Abs(i);
Application.DoEvents();
System.Threading.Thread.Sleep(5);
}
}

如果您对更多此类想法感兴趣,那么您可以查看我的博文: http://dot-net-talk.blogspot.com/2013/04/some-windows-forms-magic-in-net.html