Vista で自動実行アプリケーションの動作がおかしいのはなぜですか?

StackOverflow https://stackoverflow.com/questions/15805

  •  08-06-2019
  •  | 
  •  

質問

私たちが開発中の製品では、コンピュータを起動するたびに自動的に実行されるようにユーザーが簡単に設定できるようになります。この製品はほとんどのユーザーの基本的な作業環境の一部であるため、これは役立ちます。
この機能は少し前に実装され、しばらくはすべて順調でしたが、Vista でこの機能のテストを開始すると、製品の起動時に非常に奇妙な動作が開始されました。具体的には、私たちの製品は、サービスが必要なときに起動される別の製品 (X と呼びます) を利用します。実際の問題は、ログオン直後に X が起動されるたびにクラッシュするか、ディスク アクセスに関連する重大なエラーが報告されることです (これは、X が製品を介さずに直接起動された場合でも発生します)。

これは、レジストリの「Run」キーに製品を登録するか、「」に製品へのショートカットを配置して製品を実行するたびに発生します。起動する「 」内のフォルダースタートメニュー」というように、実際に実行を開始する前に最大 20 秒の遅延を設けた場合でも同様です。遅延を 70 秒に変更すると、すべてがうまくいきました。

ログオン直後に (デスクトップに配置されたショートカットをダブルクリックして) 製品を手動で起動して問題を再現しようとしましたが、効果はありませんでした。

では、ログオン後 1 分以内には正常に実行されるアプリケーションが、ログオン直後に起動するとこのような重大なエラーを報告する可能性があるのはなぜでしょうか。

役に立ちましたか?

解決

これは、Vista の「ボクシング」と呼ばれる新機能の効果です。Windows には、ユーザー/管理者が Windows の起動時にアプリケーションが自動的に実行されるように設定できるメカニズムがいくつかあります。この機能は主に次のいずれかの目的で使用されます。1.ユーザーの基本的な作業環境の一部であるプログラム。通常、ユーザーがコンピュータを起動するときに最初に行うアクションはプログラムの起動です。2.あらゆる種類のバックグラウンド「エージェント」 - スカイプ、メッセンジャー、winamp など。

起動時に実行できるように登録されているプログラムが多すぎる (または重すぎる) 場合、最終的にユーザーはログイン後の最初の数秒/数分間は実際には何もできなくなり、非常に迷惑になる可能性があります。Vista の「ボクシング」機能が登場します。

簡単に説明すると、Vista では、ログイン後の最初の 60 秒間は、[Run] キーを通じて呼び出されるすべてのプログラムが強制的に低優先度で動作します。これは両方に影響します I/O 優先度 (Very Low に設定) と CPU 優先度. 。優先度が非常に低い I/O リクエストは、ファイル キャッシュを通過せず、ディスクに直接送信されます。したがって、通常の I/O よりもはるかに遅くなります。ボクシング期間の長さは、レジストリ値によって設定されます。「HKLM\ソフトウェア\Microsoft\Windows\CurrentVersion\Explorer\Advanced\DelayedApps\Delay_Sec」。

より詳細な説明については、を参照してください。 ここ そして ここ

他のヒント

おそらくプログラムのプロパティにさらに情報を追加する必要があります。ただ実行するのではなく、「実行」する必要があります。

おそらく、このアプリケーションは、起動するプログラムではなくサービスとして開発する必要があります。または、最適な機会が決定されたときにプログラムを起動するサービスを用意することもできます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top