如何锁定系统?

时间:2012-10-12 12:20:50

标签: c# .net system

我如何通过C-Sharp代码完全锁定系统 Bundespolizei-Virus呢?我试图使用一个小软件来保护我的计算机,该软件在5分钟内没有任何反应时锁定系统,并且仅在用户输入正确密码时解锁。

编写自己的病毒或其他类似的东西不是我的目标,知道如何做就好了。

我不想像Windows一样锁定它,因为我想显示自己的用户界面。

在为公共计算机编写程序时,它也很有用,用户只能使用该程序,并且无法以任何方式访问操作系统。

2 个答案:

答案 0 :(得分:6)

您可以使用 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());
}

参考文献:

  1. Lock computer using c# in window application
  2. Lock, Sleep or Hibernate Windows using C#

答案 1 :(得分:4)

在Windows上,只需设置超时5分钟的屏幕保护程序密码即可。这就像你能得到的一样安全。

[更新]

啊,你已经更新了这个问题。所以你不想要标准的Windows锁屏?那么这取决于你想要它的安全性。正如我在上面的评论中所说,除非你挂钩到安全子系统,否则你将无法拦截CTRL + ALT + DEL。您曾经能够通过编写自定义GINA DLL来实现此目的,但自Vista以来,这已被弃用。现在,您需要使用自定义“凭据提供程序”执行此操作;

http://msdn.microsoft.com/en-us/magazine/cc163489.aspx

如果您不想采用这种方式,您还可以使用“策略”将计算机锁定到一个点,但总是有一种绕过用户模式应用程序的方法。如果用户可以启动任务管理器,那么他们通常可以在盒子上运行任何东西。