首页 > 解决方案 > 打开任务管理器并使用 Java 代码处理其多个选项卡

问题描述

我想打开任务管理器并单击其选项卡,如“进程”、“性能”、“应用历史记录”等,仅使用核心 java。

试图从

public class Desktop1 {

    public static void main(String[] args) throws IOException {
        Runtime.getRuntime().exec(System.getenv("windir") +"\\system32\\"+"Taskmgr.exe");
    }
}

线程“main”java.io.IOException 中的异常:无法运行程序“C:\WINDOWS\system32\Taskmgr.exe”:CreateProcess 错误=740,请求的操作需要提升

标签: java

解决方案


有多种方法可以实现这一目标。@mkane 在他的评论中提到了最简单的方法。以编程方式,这可以通过以下方式实现:向您的应用程序添加以下依赖项:

<dependency>
    <groupId>com.vnetpublishing.java</groupId>
    <artifactId>super-user-application</artifactId>
    <version>0.0.5</version>
</dependency>

现在您可以使您的类扩展SuperUserApplication类并将其覆盖run()为:

public int run(String[] strings) {
    try {
        Runtime.getRuntime().exec(System.getenv("windir") +"\\system32\\"+"Taskmgr.exe");
    } catch (IOException e) {
        e.printStackTrace();
    }
    return 0;
}

现在调用类的静态run(...)SU,传入类扩展的实例SuperUserApplication。这是一个完整的示例供您参考:

public class Main extends SuperUserApplication {
    public static void main(String[] args) {
        SU.run(new Main(), args);
    }

//    @Override
    public int run(String[] strings) {
        try {
            Runtime.getRuntime().exec(System.getenv("windir") +"\\system32\\"+"Taskmgr.exe");
        } catch (IOException e) {
            e.printStackTrace();
        }
        return 0;
    }
}

推荐阅读