2012-12-06 15 views
11

可能性の重複:
Lock Windows workstation programmatically in C#Windowsワークステーションをプログラムでロックするにはどうすればよいですか?

私は現在、ワークステーションをロック機能を必要とするのVisual Studio Windowsフォームアプリケーションに取り組んでいます。関数を呼び出すと、user32.dllを使用してロック(Windows + L)を行う方法はありますか?

+0

私は管理ソリューションを求めている投稿デュープを呼び出しますが、非管理ソリューションは、質問自体:) –

+0

が重複しないで掲載され、可能な重複は解決策を提供していません! –

+0

答えは質問にあります – spender

答えて

28

私はそれを自分自身を試していないが、私はGoogleの

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

編集にthisが見つかりました:私はそれを試みたが、それは動作します!

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

関連する問題