【问题标题】:How to open windows application in foreground from Java standalone application如何从 Java 独立应用程序在前台打开 Windows 应用程序
【发布时间】:2019-01-10 05:46:37
【问题描述】:

我想从 java 代码运行基于 Windows 的应用程序,例如:

Runtime rt = Runtime.getRuntime();

Process pr = rt.exec("C:\MyWindowsApplication.exe");

此应用程序已正确启动,但想知道如何确保 MyWindowsApplication 始终在 Java 应用程序的前台打开

我尝试使用 jna 库来获取进程 PID 号,然后使用给定的 PID 号运行 VBScript 以在前台设置 windows 应用程序。

预期结果是:如果我从 java 打开任何基于 Windows 的应用程序,该应用程序应始终在前台打开。

【问题讨论】:

  • “我尝试使用 jna 库”:而且,它有效吗?如果不是,那么导致问题的代码在哪里?
  • 编辑您的问题并添加您为将进程置于前台而编写的代码。

标签: java windows jna


【解决方案1】:

由于您已经在使用 JNA,您可能希望在 User32 class 中使用 SetForegroundWindow 函数。

您需要一个窗口句柄才能使用该函数。可以使用JNA的WindowUtils.getAllWindows()获取列表,迭代匹配title或者filePath,然后在匹配窗口调用getHWND()

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-02-06
    相关资源
    最近更新 更多