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

如何在java中检测打开的窗口,java,Java,通过使用下面的代码,我打开了一个窗口(比如某个软件安装程序窗口),一切正常, 我想看看窗户是不是开了 如何检测窗口是否打开 代码段:- cmdarray = "......"; Runtime runTime = Runtime.getRuntime(); Process responce = runTime.exec(cmdarray); 什么样的窗口 Ans:-Installer anywhere窗口 最后,通过使用Hussain提供的解决方案,我能够找到窗口是否打开 如果我

通过使用下面的代码,我打开了一个窗口(比如某个软件安装程序窗口),一切正常, 我想看看窗户是不是开了

如何检测窗口是否打开

代码段:-

  cmdarray = "......";
  Runtime runTime = Runtime.getRuntime(); 
  Process responce = runTime.exec(cmdarray);
什么样的窗口

Ans:-Installer anywhere窗口

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

如果我想关上窗户,我怎样才能关上它

我使用java中的taskkill/F/IM>.exe命令(如runtime.exe(“command”);)终止进程。 但窗户并没有关上。有办法关上那扇窗户吗

提前谢谢

@Hussain

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

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


提前感谢

这将为您提供在windows中运行的所有进程的完整列表,您可以对其进行迭代,以确定所需程序是否正在运行

    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);
         }
    }
公共类任务管理器{
公共静态void main(字符串[]args)引发IOException{
弦线;
进程p=Runtime.getRuntime().exec(“tasklist.exe”);
BufferedReader输入=新的BufferedReader(新的InputStreamReader(p.getInputStream());
而((line=input.readLine())!=null){

System.out.println(line);//这将为您提供在windows中运行的所有进程的完整列表,您可以对其进行迭代,以确定所需程序是否正在运行

    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);
         }
    }
公共类任务管理器{
公共静态void main(字符串[]args)引发IOException{
弦线;
进程p=Runtime.getRuntime().exec(“tasklist.exe”);
BufferedReader输入=新的BufferedReader(新的InputStreamReader(p.getInputStream());
而((line=input.readLine())!=null){

系统输出打印项次(行);//检查进程是否正在运行如何?这种检查最好用Windows SDK编写…@kgopi:请看编辑首先尝试关闭一些正常窗口,如记事本、计算器或其他什么东西这是一个什么进程,请给我一个简短的描述,然后我自己试试。检查进程是否正在运行如何?这种f检查最好是在Windows SDK中编写…@kgopi:请参阅编辑首先尝试杀死一些普通窗口,如记事本、计算器或其他东西这是什么过程,请给我一个简短的描述,然后我会在找到窗口的存在后尝试我自己的Hussain,如果我想关闭它,请告诉我如何点它。我尝试了taskkill命令,但没有正在工作,有关更多详细信息,请查看使用notepad++.exe尝试的(编辑的)描述,我可以终止进程(窗口关闭)。但是,如果是Installer Anywhere窗口,我会收到以下错误错误:PID 4408的进程“proces.exe”无法终止原因:此进程只能强制终止(使用/F选项),即使我尝试了/F,我也可以用它杀死进程,但无法关闭窗口。首先检查proces.exe是否丢失了a's'或notHi Hussain,谢谢你的支持,最后我才可以这么做。taskkill/T/F/IM\.exe命令对我有效,在我启动安装程序时,它创建了一个进程列表,这就是为什么以前的cOmnand不起作用。现在,当我加入/T时,它杀死了所有进程的列表..好极了,恭喜,这是我们都想帮助你自己启动和完成的Hi Hussain,在找到窗口的存在后,如果我想关闭它,如何对它进行点选。我尝试了taskkill命令,但它不起作用,有关更多详细信息,请浏览(已编辑)descriptionI尝试使用notepad++.exe时,我能够终止进程(窗口被关闭)。但在Installer Anywhere窗口的情况下,我收到此错误:无法终止PID 4408的进程“proces.exe”原因:此进程只能强制终止(使用/F选项),即使我尝试了/F,我也可以用它杀死进程,但无法关闭窗口。首先检查proces.exe是否丢失了a's'或notHi Hussain,谢谢你的支持,最后我才可以这么做。taskkill/T/F/IM\.exe命令对我有效,在我启动安装程序时,它创建了一个进程列表,这就是为什么以前的cOmnand不起作用。现在,正如我所说的/T,它杀死了所有进程的列表..好极了,恭喜,这是我们都想帮助你自己开始和完成的