【问题标题】:How to use the secure desktop in Windows Vista and W7?如何在 Windows Vista 和 W7 中使用安全桌面?
【发布时间】:2015-10-10 03:33:15
【问题描述】:

Windows Vista 添加了一项名为“安全桌面”的新功能。它看起来很棒,确实吸引了用户的注意力。但是现在,我想在我的 .NET/C# 或 Delphi/WIN32 应用程序中使用这个桌面。并将其用于我自己的对话,该对话将询问用户大约 5 条不同但敏感的信息。

有没有办法在 .NET 中使用它? 有没有办法在WIN32中使用?

【问题讨论】:

    标签: .net winapi


    【解决方案1】:

    您可能想询问制作 KeePass 的团队。他们在他们的程序中实现了在 Windows 安全桌面中输入数据库主密码的功能,以避免键盘记录器。

    另外,他们的程序是开源的,源代码可以在这里下载:http://keepass.info/download.html

    【讨论】:

      【解决方案2】:

      如果你仔细想想,你会发现没有办法改变那个安全的桌面。

      安全桌面高于普通桌面,其他所有功能均被禁用。并且不允许正常的程序对其进行干扰(否则就没用了)。

      而且 AFAIK 还以提升的权限运行,因此如果您点击“是”,它可以提升所需的任何内容。

      您所能做的就是尝试通过截取当前桌面的屏幕截图来模拟安全桌面,使该图像变暗,然后创建一个顶级窗口,在其中绘制该图像,然后显示一个带有按钮的对话框(也作为顶级窗口)。 当然,一个简单的 alt-tab 将允许用户切换回来。

      【讨论】:

      • 并不是我想要的答案。此外,安全桌面似乎被多个 Windows 应用程序使用。不仅是 UAC,还有 CardSpace。如果 Windows 不为任何其他应用程序提供此功能会很奇怪,尽管我怀疑使用它需要一些类似火箭科学的代码...
      【解决方案3】:

      似乎安全桌面是通过使用以下 Windows API 方法实现的:

      • CreateDesktop()
      • SwitchDesktop()
      • CloseDesktop()
      • SetThreadDesktop()
      • GetThreadDesktop()
      • GetCurrentThreadId()

      C# Secure Desktop implementation @ CodeProject
      MSDN Window Station and Desktop Functions reference

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-01-22
        • 1970-01-01
        • 2010-11-18
        • 2010-11-27
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多