2012-12-06 58 views
11

可能重複:
Lock Windows workstation programmatically in C#如何以編程方式鎖定Windows工作站?

我目前工作的一個Visual Studio的Windows窗體應用程序,需要鎖定工作站的功能。如何在調用函數時使用user32.dll來執行鎖定(Windows + L)?

+0

我貼是要求一個託管解決方案的重複數據刪除,但非託管的解決方案張貼在問題本身:) –

+0

不是重複可能的重複不提供解決方案! –

+0

答案在問題 – spender

回答

28

我還沒有嘗試過自己,但我發現this對谷歌

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

編輯:我試了一下,和它的作品!

edit2:這裏是solution使用user32.dll,不啓動外部進程。

using System.Runtime.InteropServices;

聲明一個方法是這樣的:

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

,然後調用LockWorkStation();

+0

是的,重複的問題不是提供你的天才解決方案! –

+0

+1。使用user32.dll,檢查,鎖定工作站,檢查。是的,似乎有幫助。但是,爲此啓動一個子進程可能會有無法預料的情況。誰知道。 =) –

+0

Psst。 **如果您從「重複」問題中複製了該問題,請歸因於原作者。 =) –

0
using System.Runtime.InteropServices; 


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

就叫

ExitWindowsEx(0, 0); 
+0

這看起來會註銷用戶,不會根據需要鎖定工作站。 – Iridium

+0

以某種方式鎖定工作站,並將用戶發送回用戶選擇屏幕。缺點是用戶會放棄所有的工作。 – TheLegendaryCopyCoder

相關問題