gpt4 book ai didi

java - 如何使用java代码在windows(taskmanager -> application)中获取打开的应用程序列表?

转载 作者:可可西里 更新时间:2023-11-01 14:13:32 25 4
gpt4 key购买 nike

这是我非常想要的快照!

Windows Application Task List

我正在尝试用 java 开发一个程序,它可以在任务栏中获取所有打开的应用程序。我尝试了很多链接,但没有一个对我有帮助。 Ganesh Rangarajan in July 2013也问了同样的问题但没有人回答他。这是他的 question .

最佳答案

这是获取所有(可见,不可见)窗口标题的解决方案: https://stackoverflow.com/a/11067492/6401177

如果您只想获得打开的顶级窗口的标题(即应用程序任务栏),您必须检查每个窗口的可见性(和/或检查此处列出的其他条件:http://vb.mvps.org/articles/ap200003.asp)。虽然,检查窗口的可见性似乎就足够了。

我只是像这样更改了之前代码中的方法“回调”:

String wText = Native.toString(windowText, System.getProperty("file.encoding")).trim();
com.sun.jna.platform.win32.WinDef.HWND hwnd_1 = new WinDef.HWND(hWnd);
boolean b = com.sun.jna.platform.win32.User32.INSTANCE.IsWindowVisible(hwnd_1);
if (!wText.isEmpty() && b) {
windowNames.add(wText);
}

我还添加了“file.encoding”,因此标题在非英语 Windows 环境中也能正确显示。我在 Windows XP/7/8 中测试了代码,它运行良好。唯一的问题似乎是一些名为“程序管理器”的默认内部(?)窗口始终包含在列表中。

您需要两个 JAR(JNA 库)来自:https://github.com/java-native-access/jna

关于java - 如何使用java代码在windows(taskmanager -> application)中获取打开的应用程序列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35956816/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com