7

ログオン前の画面 (通常、ユーザーがユーザー名とパスワードを入力する画面) でユーザーと対話する UI を表示したい
Winlogon パッケージのアーキテクチャが変更され、Windows 7 では役に立たないという記事を読みました。紹介されました。 WTS関数を使用することはできますが、それらをどのように使用するか、またはどの関数を使用するかについてはまだ明確ではありません.

notepad.exe を起動するサービスを既に作成しましたが (今のところ)、ユーザーがログオン前の画面にいるときにこのサービスをトリガーする必要があります。何をどのように実装するのかわかりません。

4

4 に答える 4

3

あなたがやろうとしているのは、Windows Interactive Logon Architectureを使用することです

Windows Vista の例はこちら (資格情報プロバイダー)

Windows 7 Technet の記事

于 2012-09-19T18:08:08.817 に答える
0

あなたの要件について私が理解していることから、資格情報プロバイダー レベルでカスタム ユーザー インターフェイスを表示したいと考えています。これは、次のいずれかの方法で実現できます。

(1) クレデンシャルの SetSelected メソッドでモーダル ダイアログとして UI を含むカスタム CP を記述します。このアプローチにより、任意の UI をカスタマイズできます。モーダル ウィンドウが閉じられると、実際のパスワード CP が作成されます (デフォルトのパスワード CP をラップすると仮定します)。

(2) Windows サービスからアプリケーションを起動する: このアプローチでは、プロバイダーの初期化は停止しません。基本的に、Windows サービスは、Winsta0\Winlogon デスクトップでプロセスを起動するために使用されます。Alt+TAB を使用して起動されたプロセスにアクセスできます。使用する必要がある基本的な手順は次のとおりです。

  1. アクティブなセッション ID を取得するための WTSGetActiveConsoleSessionId
  2. winlogon pid を取得するための WTSQueryUserToken()
  3. トークンを複製する DuplicateTokenEx
  4. AdjustTokenPrivileges を呼び出してトークン権限を調整する
  5. lpDesktop を Winsta0\Winlogon として CreateProcessAsUser

私は両方のアプローチを使用しました。最初のものは、より安全なログインを導入するために使用されます。2 つ目は、リモート アクセス ツール、コマンド プロンプトなどを起動するために使用されます。

于 2012-11-26T13:52:16.320 に答える
0

誰もログインせずに UI を表示する 1 つの方法は、ログイン スクリーンセーバーを使用することです。コード (.NET の場合もあります) は、タイムアウト後、終了するか、誰かが Ctrl-Alt-Del を押すまで実行されます。

ログイン スクリーンセーバーとしてできることには制限がありますが、うまくいく可能性があります。

于 2012-09-22T23:57:11.133 に答える
0

この種のことを行うのが難しいのには理由があります。プログラムはユーザーの手先です。ログオン前、(通常) ミニオンになるユーザーはいません。それはセキュリティの問題です。

ユーザーがログインしたときにサービスを開始するだけです。

于 2012-09-19T16:54:16.720 に答える