如何通过像Bundespolizei-VirusC-Sharp
那样的代码
完全锁定系统?我正在尝试使用一个小软件来保护我的计算机,该软件会在 5 分钟内没有任何反应时锁定系统,并且只有在用户输入正确的密码时才会解锁。
编写自己的病毒或类似的东西不是我的目标,知道如何编写会很好。
我不想像 Windows 那样锁定它,因为我想展示我自己的用户界面。
在为公共计算机编写程序时,它也很有用,用户只能使用该程序并且无法以任何方式访问操作系统。
如何通过像Bundespolizei-VirusC-Sharp
那样的代码
完全锁定系统?我正在尝试使用一个小软件来保护我的计算机,该软件会在 5 分钟内没有任何反应时锁定系统,并且只有在用户输入正确的密码时才会解锁。
编写自己的病毒或类似的东西不是我的目标,知道如何编写会很好。
我不想像 Windows 那样锁定它,因为我想展示我自己的用户界面。
在为公共计算机编写程序时,它也很有用,用户只能使用该程序并且无法以任何方式访问操作系统。
您可以使用来自user32.dll的 API 使用这段代码来锁定工作站:
[DllImport("user32.dll", SetLastError = true)]
static extern bool LockWorkStation();
用法:
bool result = LockWorkStation();
if (result == false)
{
// An error occured
throw new Win32Exception(Marshal.GetLastWin32Error());
}
参考:
在 Windows 上,只需设置一个 5 分钟超时的屏幕保护程序密码。这是尽可能安全的。
[更新]
啊,你已经更新了问题。所以你不想要标准的 Windows 锁屏?好吧,这取决于您希望它有多安全。正如我在上面的评论中所说,除非您连接到安全子系统,否则您将无法拦截 CTRL+ALT+DEL。您过去可以通过编写自定义 GINA DLL 来做到这一点,但从 Vista 开始,这已被弃用。现在您需要使用自定义“凭据提供程序”来执行此操作;
http://msdn.microsoft.com/en-us/magazine/cc163489.aspx
如果你不想走这条路,你也可以使用“策略”将机器锁定到一个点,但总有办法绕过用户模式应用程序。如果用户可以调出任务管理器,那么他们通常可以在盒子上运行任何东西。