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);

来自 ShowWindow 的 API:

nCmdShow

类型:整数

控制窗口的显示方式。如果启动应用程序的程序提供 STARTUPINFO 结构,则应用程序首次调用 ShowWindow 时将忽略此参数。否则,首次调用 ShowWindow 时,该值应为 WinMain 函数在其 nCmdShow 参数中获取的值。在后续调用中,此参数可以是以下值之一。

如果您第二次调用它,您的最小化命令似乎可能会起作用。

最新更新