Windows Vista添加了一项名为“安全桌面”的新功能。它看起来很棒,真的引起了用户的注意。但现在,我想在我的.NET / C#或Delphi / WIN32应用程序中使用此桌面。并将其用于我自己的对话框,该对话框将询问用户大约5种不同但敏感的信息。
有没有办法在.NET中使用它? 有没有办法在WIN32中使用它?
答案 0 :(得分:5)
你可能想问一下制作KeePass的团队。他们在程序中实现了在Windows Secure Desktop中为其数据库输入主密码的能力,以避免键盘记录器。
此外,他们的程序是开源的,源代码可以在这里下载:http://keepass.info/download.html
答案 1 :(得分:3)
如果您考虑一下,您会发现无法更改该安全桌面。
安全桌面位于普通桌面之上,其他所有内容都已禁用。并且它不允许正常程序干扰它(否则它将是无用的)。
AFAIK它也可以使用提升的权限运行,因此如果点击“是”,它可以提升它所要求的任何内容。
您可以做的就是尝试通过截取当前桌面的屏幕截图来模拟安全桌面,使图像变暗,然后创建顶层窗口,在其中绘制图像,然后在其上显示带有按钮的对话框(也作为顶级窗口)。 但是,当然,一个简单的alt-tab将允许用户切换回来。
答案 2 :(得分:2)
使用以下Windows API方法似乎可以实现Secure Desktop:
CreateDesktop()
SwitchDesktop()
CloseDesktop()
SetThreadDesktop()
GetThreadDesktop()
GetCurrentThreadId()