3

次のコード行があります。

Process aProcess = Process.Start("ieexplorer", aDummyHTMLFilePath);
//I do nothing in between
aProcess.Kill();

他のIEウィンドウが開いていない場合、これはスムーズに実行されます。

しかし、窓が開いている場合は、次のようSystem.InvalidOperationExceptionaProcess.Kill();言います。

プロセスが終了したため、リクエストを処理できません。

aProcess.HasExitedまた、この場合、上記のコードの 1 行目の直後に true があることに気付きました。

他の IE ウィンドウが開いている場合でも、スムーズに IE を閉じるにはどうすればよいですか?

4

2 に答える 2

4

Internet Explorer の新しいインスタンスを開始すると、Internet Explorer が既に実行されているかどうかが確認されます。その場合、URL は既に実行中のインスタンスで開かれ、新しいインスタンスはすぐに終了します。これは、開始したプロセスを強制終了しようとすると、すでに自発的に終了していることを意味します。ただし、画面に新しいブラウザ ウィンドウまたはタブが表示されますが、それは既存の Internet Explorer プロセスによってホストされています。

于 2012-08-13T08:59:55.273 に答える
0

私はあなたと同じ問題を抱えていませんでした

プロセスがまだ実行されているかどうかにかかわらず、次のことが機能することがわかりました

    Process p = Process.Start("notepad.exe", "");
    Thread.Sleep(5000);
    if (!p.HasExited) p.Kill();

ウィンドウが閉じられていた場合にのみ不平を言いました。したがって、チェック

于 2012-08-13T08:56:19.770 に答える