1

是否可以使用 java 扫描所有打开的窗口并找到指定的窗口。说记事本?例如,我希望记事本在前面和中间打开并准备好,它打开,当我运行我的程序时,它会扫描所有打开的窗口并将记事本向前移动。

4

2 回答 2

0

这可以通过 JNA 完成。

import com.sun.jna.platform.win32.User32;
import com.sun.jna.platform.win32.WinDef.HWND;


// https://github.com/twall/jna#readme
//    you need 2 jars : jna-3.5.1.jar and platform-3.5.1.jar

public class ActivateNotepad {

    public static void main(String[] args) {
            HWND hwnd = User32.INSTANCE.FindWindow("Notepad", null);
            if (hwnd == null) {
                System.out.println("No Notepad instance detected");
            }
            else{
                System.out.println("Notepad instance found.");
                User32.INSTANCE.SetForegroundWindow(hwnd);  
            }
        }
}
于 2015-02-10T16:23:30.873 回答
0

我在Windows系统方面有丰富的经验。而且我知道在 Windows Management Instrumentation (WMI) 中适当地满足了 Windows 系统的特定要求。我已经像你正在做的那样成功地使用了 WMI,但我从来没有用 Java 做过。这是 WMI 解释的链接。请告诉我您尝试了哪些并陈述您的结论。

相信我,一旦您知道如何使用 Java 访问 WMI,您几乎可以在 Windows 系统上做任何事情。当然,如果我有这样的要求,我会使用 C# 和 .NET。但 Java 是您的选择 </p>

于 2012-05-28T06:01:33.213 回答