如何在java中检测打开的窗口

时间:2013-03-11 09:38:13

标签: java

通过使用下面的代码,我打开了一个窗口(比如一些软件安装程序窗口),它很好, 在这里,我想检查窗户是否打开天气。

如何检测窗口是否已打开

代码段: -

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

什么样的窗口

Ans : - 任何位置的安装程序窗口

最后我可以通过使用Hussain提供的解决方案找到窗口是否打开

如果我想关闭窗户,我该如何关闭它.......

我使用 taskkill / F / IM<< java中的installer_window>> .exe 命令(如runtime.exe(“command”);)来终止进程。 但是窗户没有关闭。有没有办法关闭那个窗口。

先谢谢。

@Hussain

我按照你说的尝试,但是我收到的错误如错误:无法终止带有PID 4408的进程“proces.exe”原因:此进程只能强制终止(使用/ F选项)。 这就是为什么我包含 / F ,借助于此我可以终止进程,但窗口没有关闭。

请提供快速解决方案,等待回复......

先谢谢

1 个答案:

答案 0 :(得分:1)

这将为您提供窗口中运行的所有进程的完整列表,您可以迭代它以使您所需的程序运行与否。

    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);
         }
    }