java - JNA 查找窗口,但未将其最小化
问题描述
我正在尝试使用 JNA 操作 Java 上的外部窗口。我想找到一个特定的窗口,然后将其最小化。我尝试过的每个窗口都运行良好,但只有一个(显然是我需要的)。可以找到那个并将其设置为前台,但不能以编程方式最小化。我也尝试使用 User32.INSTANCE.MoveWindow 移动它,但该命令也失败了。我想知道是否有不允许 JNA 窗口操作的应用程序。如果是这样,我该怎么办?我的代码如下所示。
HWND test = User32.INSTANCE.FindWindow(null,"windowname");
User32.INSTANCE.SetForegroundWindow(test);
User32.INSTANCE.ShowWindow(test, WinUser.SW_MINIMIZE);
解决方案
nCmdShow
类型:整数
控制窗口的显示方式。如果启动应用程序的程序提供 STARTUPINFO 结构,则应用程序第一次调用 ShowWindow 时忽略此参数。否则,第一次调用 ShowWindow 时,该值应该是 WinMain 函数在其 nCmdShow 参数中获取的值。在后续调用中,此参数可以是以下值之一。
如果您再次调用它,您的最小化命令似乎会起作用。
推荐阅读
- wpf - 在 WPF 中创建四向网格拆分器
- debugging - Gradle / IntelliJ 通信错误导致“无法启动守护进程”
- python - 使用 pm2 管理 python 应用程序
- sql - 将 Python 列表插入 SQL 数据库
- swift - 如何将 MKMapView 设置为暗模式?
- android - 如何使用 Gradle Experimental Plugin 对 64 位 Android APK 进行代码设计?
- ms-access - 如何使用 VBScript 连接到 Access 数据库
- ruby-on-rails - Errno::ENOENT:没有这样的文件或目录 - osascript
- javascript - 在javascript中如何在具有嵌套数组的对象数组中查找值
- go - 我无法导入“cloud.google.com/go/datastore”