ログインせずに Windows の起動時に vb6 アプリケーション (.exe) を実行する

ログインせずに Windows の起動時に vb6 アプリケーション (.exe) を実行する

Windows の起動時に実行したいレガシー Windows アプリケーション (.exe ファイル) がいくつかあります。ユーザーがログインするまで待つ必要はありません。Windows サービスのように実行したいのです。レガシー アプリケーションなので、Windows サービスに変換したくありません。「スタートアップ」フォルダーに配置すると、ユーザーがログインしたときにのみ実行されます。誰かがログインしなくても実行できるようにしたいのです。

ありがとう。

答え1

タスク スケジューラでタスクを作成してみてください。exe ファイルを指定して、「ユーザーがログインしているかどうかに関係なく実行する」オプションを選択します。

答え2

ユーザーに「バッチとして実行」権限が必要であることを念頭に置く必要があります。その場合、タスク スケジューラが答えとなる可能性があります。

ただし、当然のこととして利用している多くのシステム サービスがバッチ タスクでは利用できない可能性があることに注意してください。また、ログオン時にスケジューラが開始するタスクは対話的に実行されるため、この意味での「バッチ」は「スケジュール済み」と同じではないことにも注意してください。

ビデオキャプチャなどは、真のバッチタスクには存在しない可能性があり、ユーザーがログオンした後でも(同じユーザーであっても)ユーザーインタラクションは不可能であると思います。これは、確実にするためにテストすべきことです。

もう 1 つの問題は、USB ハブやデバイスの認識や「インストール」など、スケジューラが「起動時」タスクを開始したときに完了していない可能性があるものです。ネットワークにも、特にワイヤレスの場合、同様の注意点がいくつかあります。UPnP NAT サービスも時間がかかり、Windows が LAN 上の他のノード (ルーター、他の PC など) からの応答を蓄積し終わるまで利用できません。つまり、必要なサービスがすべて利用可能になるまで、プログラムに 1 分以上の遅延を課す必要がある場合があります。

スタートアップ フォルダー タスクを持つ、自動ログオンに設定されたユーザーの場合も、同じ問題が発生する可能性があります。自動ログオン後にタスクが実行されても、システム サービスがまだ初期化中である可能性があります。

答え3

Microsoft Windowsサービス(以前はNTサービスと呼ばれていました)を使用すると、独自のWindowsセッションで実行される長時間実行可能なアプリケーションを作成できます。自動的に起動する機能コンピュータの起動時に自動的に実行され、手動で一時停止、停止、または再起動することもできます。

シンプルな Windows サービス サンプル

Sc.exe を使用して Windows サービスを作成する方法

関連情報