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 に答える