4

エクスプローラーを閉じてから別のプログラムを実行するプログラムを作成しようとしています。
次のコードを使用してエクスプローラーを閉じようとすると、問題が発生します。

foreach (Process p in Process.GetProcesses())
                if (p.MainModule.ModuleName.Contains("explorer"))
                    p.Kill();  

誰かがなぜこれをしているのか教えてくださいそして解決策を提供してください
CHEERS

psこれは悪意のあるプログラムではありません。エクスプローラーがバックグラウンドにある場合、正しく動作しないゲームを実行します。

4

3 に答える 3

5

問題は、任意の時点で複数のバージョンのExplorerを実行できることです...通常、少なくとも1つは必要です。スタートメニューをホストするシェルは、実際にはExplorerのインスタンスです。したがって、Explorerのすべてのインスタンスを閉じると、メインシェルもシャットダウンすることになりますが、これは実行したいことではありません。

ただし、Explorerのすべてのインスタンスを取得して強制終了する最も速い方法は、次のとおりです。

foreach (Process p in Process.GetProcessesByName("explorer"))
{
   p.Kill();
}
于 2010-03-05T14:28:14.747 に答える
5

エクスプローラーをクリーンに終了するための文書化されていない簡単な方法があります。質問「エクスプローラーを正常に終了する(プログラムで) 」も参照してください。これは、シェル拡張に取り組んでいる開発者を対象としています。

手順は、WindowsXPとWindows7では異なります。

Windows XP:シャットダウンダイアログを開き([スタート]> [シャットダウン])、CTRL-SHIFT-ALT-ESCを押してダイアログをキャンセルします(またはCTRL-SHIFT-ALTを押しながらマウスでボタンを押します)。

Windows 7:[スタート]メニューを開き、Ctrlキーを押しながらShiftキーを押しながら、スタートメニューの何もない領域を右クリックします。スクリーンショットを参照してください。コンテキストメニューが表示され、2番目のエントリは「エクスプローラを終了」です(CTRL-SHIFTを使用しない場合、コンテキストメニューにはエントリが1つだけあります)

于 2011-07-02T16:45:10.267 に答える
0

psこれは悪意のあるプログラムではありません。エクスプローラーがバックグラウンドにある場合、正しく動作しないゲームを実行します。

Explorerは重要なWindowsコンポーネントです。Explorerの実行中に問題が発生する理由をデバッグし、それらを修正する必要があります。

Explorerを強制終了すると、ユーザーに深刻な問題が発生します。

于 2019-08-22T20:16:07.947 に答える