6

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

これは、レジストリの「実行」キーに製品を登録して製品を実行するか、「スタート メニュー」内の「スタートアップ」フォルダにショートカットを配置して製品を実行するたびに発生します。走り始めます。遅延を 70 秒に変更すると、すべて問題ありません。

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

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

4

2 に答える 2

6

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

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

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

詳細な説明については、こちらこちらを参照してください

于 2008-08-19T06:43:55.987 に答える
0

The program probably needs some more info put into its properties. It needs to "Run As", instead of just running.

Maybe this application should be developed as a service, instead of a program to be launched, or you could have service that launches the program when its determined the best window of opportunity.

于 2008-08-19T14:46:37.683 に答える