当前位置: 首页 > 知识库问答 >
问题:

检查某些exe程序是否在windows上运行

谭成业
2023-03-14

如何检查是否有。exe程序正在Windows上运行(正在运行)?

我正在制作java应用程序,更新一个。exe程序。所以,如果某个客户端使用了该exe程序,我的应用程序会要求关闭exe程序,并在关闭后自动替换。exe文件和新文件。

共有3个答案

贝凯
2023-03-14

您可以尝试运行以下代码:

Runtime rt = Runtime.getRuntime();

并执行"任务列表"

tasklist返回当前正在执行的进程列表(如任务管理器的进程选项卡所示)。

吴谦
2023-03-14

下面是一个完整的代码,用于检查应用程序是否在Windows系统上运行:

import java.awt.*;
import java.io.File;
import java.io.IOException;
import java.io.InputStream;
import java.util.Scanner;

public class ApplicationUtilities
{
    public static void runApplication(String applicationFilePath) throws IOException, InterruptedException
    {
        File application = new File(applicationFilePath);
        String applicationName = application.getName();

        if (!isProcessRunning(applicationName))
        {
            Desktop.getDesktop().open(application);
        }
    }

    // http://stackoverflow.com/a/19005828/3764804
    private static boolean isProcessRunning(String processName) throws IOException, InterruptedException
    {
        ProcessBuilder processBuilder = new ProcessBuilder("tasklist.exe");
        Process process = processBuilder.start();
        String tasksList = toString(process.getInputStream());

        return tasksList.contains(processName);
    }

    // http://stackoverflow.com/a/5445161/3764804
    private static String toString(InputStream inputStream)
    {
        Scanner scanner = new Scanner(inputStream, "UTF-8").useDelimiter("\\A");
        String string = scanner.hasNext() ? scanner.next() : "";
        scanner.close();

        return string;
    }
}

例如,您可以使用runApplication()方法仅在应用程序尚未运行时运行它:

ApplicationUtilities.runApplication("C:\\Program Files (x86)\\WinSCP\\WinSCP.exe");

同样的原则也适用于删除可执行文件。

杜曜灿
2023-03-14

您可以在java程序中运行以下语句。在此之前,您需要知道任务管理器中任务的名称。假设你想看到Word正在运行。然后运行MS Word,进入任务管理器,在“进程”选项卡下,您应该会看到一个名为Word的进程。exe。找出你目标流程的名称。一旦完成,只需运行以下代码:

String line;
String pidInfo ="";

Process p =Runtime.getRuntime().exec(System.getenv("windir") +"\\system32\\"+"tasklist.exe");

BufferedReader input =  new BufferedReader(new InputStreamReader(p.getInputStream()));

while ((line = input.readLine()) != null) {
    pidInfo+=line; 
}

input.close();

if(pidInfo.contains("your process name"))
{
    // do what you want
}
 类似资料:
  • 问题内容: 如何检查Windows上是否正在运行(正在执行)某些.exe程序? 我正在制作更新一个.exe程序的Java应用程序。因此,如果某个客户端使用了该exe程序,则我的应用程序要求关闭exe程序,并在关闭后自动用新的exe文件替换。 问题答案: 您可以在Java程序中运行以下语句。在此之前,您需要知道中的任务名称。假设您要查看MS-Word正在运行。然后运行MS- Word,转到任务管理器

  • 问题内容: 我是一名Android开发人员,我想在我的应用程序中编写一条语句。在此语句中,我要检查默认浏览器(Android OS中 问题答案: 添加下面的Helper类: 现在,你可以从以下代码中检查所需的应用程序是否正在运行:

  • 我想检查某个程序是否在计算机启动时运行,我为此访问了类: 输出确实是,因为该程序实际上是在windows启动时运行的,但是当我通过禁用该程序启动时(它的状态变为),下次我运行上面的代码时,结果仍然是,尽管该程序不再是启动程序的一部分。 这让我得出了一个简单的结论,当windows任务管理器禁用启动程序时,它不会删除注册表项中的项,而是更改了它的另一个值..但是我无法找到那个更改的值。 我希望有人能

  • 问题内容: 如何在Windows系统上安装程序(例如检查Mozilla Firefox)时如何使用Java进行检查? 问题答案: 我假设您在谈论Windows。由于Java旨在成为一种与平台无关的语言,并且每种平台如何确定它的方式各不相同,因此没有标准的Java API可以对此进行检查。但是,您可以借助对Windows注册表进行爬网的DLL上的JNI调用来完成此操作。然后,您可以只检查注册表中是否

  • 问题内容: 作为构建穷人看门狗并确保应用程序崩溃的一种方法(直到我弄清原因),我需要编写一个PHP CLI脚本,该脚本将由cron每5百万次运行一次,以检查该进程仍在运行。 基于此页面,我尝试了以下代码,但是即使我使用虚假数据对其进行调用,它也始终返回True: 接下来,我尝试了这段代码 … …但是没有达到我的期望: FWIW,此脚本与PHP 5.2.5的CLI版本一起运行,并且操作系统为uCli

  • 问题内容: 我环顾了一阵子,我很惊讶地发现Gunicorn是否在Windows上运行,没有任何信息。有谁知道是这种情况,如果是,我在哪里可以找到有关它的文档? 问题答案: Gunicorn用于UNIX环境,并且与Windows不兼容。另外,有关更多信息,请参阅它的文档。