web-dev-qa-db-ja.com

Windows 7が応答しないプログラムを強制的に閉じるのを防ぐことは可能ですか?

Windows 7は、プログラムが応答を停止したと考えるプログラムを閉じることに少し熱心すぎるようです。時間がかかるものもありますが、もう機能していないと判断するまでにはもう少し時間がかかると思います。

プログラムがフリーズしたかどうかを判断するために使用する基準について、誰かに教えてもらえますか?

5
barrymac

いくつかの基準があります。一般に、未処理の例外が最大のキラーです。他にもエラーがありますが、かなり技術的になります。

2つ目は、アプリケーションにディスパッチされたメッセージが取得されない場合、アプリケーションが応答しなくなることです。 Windowsは、各アプリケーションへのメッセージにタイマーを接続します。処理されない場合は、応答しないメッセージが表示されます。

3つ目は、アプリケーションがWindowsにアプリケーションプロセスを強制終了するように明示的に指示して、致命的でないエラーを発生させることもできます。多くの場合、これはデータの破損を防ぐためです。

ハングするのはどのプログラムですか?

編集:

どうやら、これをオフにする方法はあります。偶然にも、私はperfmonチームのブログを読んでいて、 この記事 に出くわしました。アプリケーションの「ゴースト」を明示的にオフにする手順を示します。ステップもカットアンドペーストします。

アプリケーション互換性ツールキットをダウンロードするには、次のMicrosoftWebサイトにアクセスしてください。

http://msdn2.Microsoft.com/en-us/library/aa286552.aspx

カスタムアプリケーション互換性データベースを作成するには:

  1. 互換性管理者ツールをインストールして実行します。

  2. [カスタムデータベース]を右クリックし、[新規]をクリックします。

  3. 新しいデータベースを右クリックし、[名前の変更]をクリックします。

  4. データベースの名前としてnoghostと入力します。 (これには好きな名前を付けることができます。)

  5. [新しいデータベース]を右クリックし、[新規作成]をクリックして、[アプリケーションの修正]をクリックします。修正するプログラムの名前を入力します。

  6. プログラムの製造元の名前を入力します。

  7. 適切なプログラム(.exe)ファイルを見つけて選択します。

  8. [次へ]をクリックします。

  9. [互換モード]ウィンドウで、[なし]をクリックし、[次へ]をクリックします。

  10. [互換性の修正]リストで、[NoGhost]をクリックします。

  11. [テスト実行]または[完了]をクリックします。 [テスト実行]をクリックすると、アプリケーションの互換性設定でプログラムが起動します。 [完了]をクリックすると、互換性の修正がデータベースに追加されます。

  12. [ファイル]メニューの[保存]をクリックして、データベースを保存します。または、データベースをC:\ Windows\AppPatchフォルダーにコピーします。

  13. データベースを右クリックし、[インストール]をクリックします。または、sdbinst c:\ windows\apppatch\noghost.sdb-qコマンドを実行してデータベースをインストールします。

手順を自分で確認しました。 。 。

5
surfasb

WaitToKillAppTimeout エントリ( WaitToKillServiceTimeout for services)を変更することにより、Windowsがアプリケーション(またはサービス)を応答しないと見なすために必要なタイムアウト期間を変更できます。これはユーザーごとの設定です。

デフォルトは20,000ミリ秒(20秒)なので、30,000などに設定してみてください。また、タスクの終了ダイアログでCancelをクリックして、オンデマンドでより多くの時間を与えることができるはずです。

変更できるその他の関連設定には、 HungAppTimeout 、および AutoEndTasks があります。

2
Synetech

Windows 7は、タイムアウトに達する前に応答しないプログラムを閉じようとはしません。ただし、プログラムをクリックするか、完了しているタスクが完了する前に別のタスクを実行しようとしない限り、プログラムが終了するまで待ってからクリックして他の何かを開始すると、運が良くなる可能性があります。

タイムアウトを変更しても、その動作は変更されません。ユーザーではなく、Windows自体が待機する時間を制御するだけです。

2
Abraxas