1

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

编写自己的病毒或类似的东西不是我的目标,知道如何编写会很好。

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

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

4

2 回答 2

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. 在窗口应用程序中使用 c# 锁定计算机
  2. 使用 C# 锁定、睡眠或休眠 Windows
于 2012-10-12T12:23:39.890 回答
5

在 Windows 上,只需设置一个 5 分钟超时的屏幕保护程序密码。这是尽可能安全的。

[更新]

啊,你已经更新了问题。所以你不想要标准的 Windows 锁屏?好吧,这取决于您希望它有多安全。正如我在上面的评论中所说,除非您连接到安全子系统,否则您将无法拦截 CTRL+ALT+DEL。您过去可以通过编写自定义 GINA DLL 来做到这一点,但从 Vista 开始,这已被弃用。现在您需要使用自定义“凭据提供程序”来执行此操作;

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

如果你不想走这条路,你也可以使用“策略”将机器锁定到一个点,但总有办法绕过用户模式应用程序。如果用户可以调出任务管理器,那么他们通常可以在盒子上运行任何东西。

于 2012-10-12T12:23:35.387 回答