2012-04-01 18 views
3

私は現在ログインしているユーザーを偽装し、代わりに(UIアプリケーションを含む)アプリケーションを起動できるWindowsマシン上でシステムサービスを実行しています。Windowsのログオンが完了したら何かを実行するには?

ユーザーが既に対話セッションにログオンしていて、デスクトップが作成されているなどの処理がうまくいきます。

サービスの起動は自動であるため、再起動するたびに自動的に開始されます。サービスが開始された直後に何らかのプログラム(UIアクセスが必要)を実行しようとすると、そのプログラムは失敗する可能性があります。おそらく、自動処理がまだ進行中で、デスクトップがまだ作成されていないなどの理由で失敗する可能性があります。

サービスが「早期」に開始された場合、どのようにしてインタラクティブセッションが完全に初期化されるのを待つことができますか?

サービスを「遅く」開始できますか?シェルが準備完了し、UIアプリケーションを起動するのが安全なときにサービスの起動を遅らせるために使用できるレジストリキー、フォルダ、またはその他のものはありますか?

答えて

2

の.batファイルを書き込むことで、どちらかの「ユーザーがログオンするとき、いくつかのコードを実行」する最も簡単な二つの方法:)

1は、スタートアップフォルダ < =注.BATファイルを置くには: Windows 7の/ Vistaは新しい "スタートアップフォルダ"

のための場所...か...

2)ログイン時に.batファイルを呼び出す新しいタスクを作成してい

Iオプション「2 ) "より細かい制御が可能です。また、必要に応じて.batファイルを「管理者として実行」することもできます。

あなたは必ず物事が完全に初期化されているあなたの.batファイルに 『ピング-w」、あなたが追加することができます』にするために例えば(簡単に.BATファイルのポーズを作りたい場合

例:。

@rem Waits 5 seconds before continuing 
ping 1.1.1.1 -n 1 -w 5000 > nul 
+0

ありがとうございました。ソリューション2がうまく動作することがわかりました(私はschtasks.exeを使ってプログラムでそのONLOGONタスクを作成/削除しています)。 – Netspirit

関連する問題