【问题标题】:How do I lock a windows workstation programmatically? [duplicate]如何以编程方式锁定 Windows 工作站? [复制]
【发布时间】:2012-11-24 14:38:47
【问题描述】:

可能重复:
Lock Windows workstation programmatically in C#

我目前正在开发一个需要锁定工作站的功能的 Visual Studio Windows 窗体应用程序。调用该函数时,如何使用 user32.dll 进行锁定(Windows + L)?

【问题讨论】:

  • 我发布的骗子要求托管解决方案,但非托管解决方案发布在问题本身:)
  • 不重复,可能的重复没有提供解决方案!
  • 答案就在问题中
  • 这个问题的标题和使用的术语具有误导性。您正在锁定工作站,没有执行帐户锁定(这完全是另外一回事)。
  • 应该认为标签足以假设“Windows”,但无论如何。 =)

标签: c# user32


【解决方案1】:

我自己没试过,但是在google上找到this

Process.Start(@"C:\WINDOWS\system32\rundll32.exe", "user32.dll,LockWorkStation");

编辑:我试过了,它有效!

edit2:这是一个使用user32.dllsolution,它不会启动外部进程。

using System.Runtime.InteropServices;

声明一个这样的方法:

[DllImport("user32.dll")]
public static extern bool LockWorkStation();

然后拨打LockWorkStation();

【讨论】:

  • 是的,重复的问题并没有提供您的天才解决方案!
  • +1。利用user32.dll,检查,锁定工作站,检查。是的,看起来很有帮助。但是,为此启动子流程可能会出现无法预料的情况。谁知道。 =)
  • 附言。 如果您从“重复”问题中复制了该内容,请注明原作者。 =)
  • 哦,没看过,抱歉:P
  • 那你没有复制,不需要署名。 =)
【解决方案2】:
using System.Runtime.InteropServices;


[DllImport("user32.dll")]
public static extern int ExitWindowsEx(int uFlags, int dwReserved);

打电话

 ExitWindowsEx(0, 0);

【讨论】:

  • 这似乎是注销用户,而不是按要求锁定工作站。
  • 在某种程度上,这确实锁定了工作站,并将用户送回用户选择屏幕。缺点是用户将失去所有工作。
  • @TheLegendaryCopyCoder 在某种程度上,这值得反对
猜你喜欢
  • 2010-09-15
  • 2010-11-18
  • 2018-05-12
  • 2010-09-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-04-05
  • 2011-10-21
相关资源
最近更新 更多