1

以下のコードを使用して、ウィンドウ (ソフトウェア インストーラー ウィンドウなど) を開きましたが、うまくいきました。ここでは、ウィンドウが開かれたかどうかを確認したいと思います。

ウィンドウが開いているかどうかを検出する方法は?

コードスニペット:-

  cmdarray = "......";
  Runtime runTime = Runtime.getRuntime(); 
  Process responce = runTime.exec(cmdarray);

どのようなウィンドウ

回答:-インストーラーどこでもウィンドウ

最後に、フセインが提供するソリューションを使用して、ウィンドウが開いているかどうかを確認できました

ウィンドウを閉じたい場合、どうすれば閉じることができますか.....

javaでtaskkill /F /IM << installer_window>>.exeコマンド (runtime.exe("command"); など) を使用して、プロセスを強制終了しました。しかし、窓は閉まりません。そのウィンドウを閉じる方法はありますか。

前もって感謝します。

@フセイン

あなたが言ったように試してみましたが、次のようなエラーが発生しますERROR: The process "proces.exe" with PID 4408 could not be terminate Reason: このプロセスは強制的にのみ終了できます (/F オプションを使用)。/Fを含めたのはそのためです。これにより、プロセスを強制終了できますが、ウィンドウが閉じられません。

回答を待って、迅速な解決策を提供してください....

前もって感謝します

4

1 に答える 1

2

これにより、ウィンドウで実行されているすべてのプロセスの完全なリストが得られます。目的のプログラムが実行されているかどうかを繰り返すことができます。

    public class taskmanager {

        public static void main(String[] args) throws IOException {
            String line;
            Process p = Runtime.getRuntime().exec("tasklist.exe");
            BufferedReader input = new BufferedReader(new InputStreamReader(p.getInputStream()));
            while ((line = input.readLine()) != null) {
                System.out.println(line); //<-- Parse data here.
            }
            input.close();
                String processToKill = "notepad++.exe"
                killProcess(processToKill);
        }
        public void killProcess(String processName)
        {
         Runtime.getRuntime().exec("taskkill /IM " + processName);
         }
    }
于 2013-03-11T09:48:11.440 に答える