2008-08-19 4 views
6

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

我々は、レジストリで「ファイル名を指定して実行」キーでそれを登録するか、「スタートメニュー」内側「スタートアップ」フォルダにへのショートカットを配置することにより、私たちの製品を実行するたびにこれが私たちが入れた場合でも、起こります実際に実行を開始するまで〜20秒の遅延。遅延を70秒に変更したとき、すべてがうまくいきました。

ログオン直後(デスクトップ上にあるショートカットをダブルクリックして)手動で製品を起動しても、問題が再現しようとしましたが、役に立たなくなりました。

ログオン直後に正常に起動するアプリケーションが、ログオン直後に起動するとこのようなハードエラーを報告する可能性はありますか?

答えて

6

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

起動時に実行されるプログラムが多すぎる(またはあまりにも重すぎる)場合、結果としてユーザーは実際には何もできませんログイン後の最初の数秒/分の間、本当に迷惑になる可能性があります。 Vistaの「ボクシング」機能が登場:

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

herehere

0

プログラムは、おそらく、そのプロパティに入れて、いくつかのより多くの情報を必要とするを参照してください。実行するだけでなく、「実行する」必要があります。

このアプリケーションは、起動するプログラムの代わりにサービスとして開発するか、最適な機会を決定したときにプログラムを起動するサービスを提供する必要があります。

関連する問題