JNA 发现 window,但没有最小化它

JNA finding window, but not minimizing it

我正在尝试使用 JNA 在 Java 上操作外部 window。我想找到一个特定的 window 然后最小化它。我尝试过的每个 window 都运行良好,只有一个(显然是我需要的那个)。可以找到那个并将其设置为前台,但不能以编程方式将其最小化。我也尝试用 User32.INSTANCE.MoveWindow 移动它,但该命令也失败了。 我想知道是否有不允许 JNA window 操作的应用程序。如果是这样,我该怎么办?我的代码如下所示。

    HWND test = User32.INSTANCE.FindWindow(null,"windowname");
    User32.INSTANCE.SetForegroundWindow(test);
    User32.INSTANCE.ShowWindow(test, WinUser.SW_MINIMIZE);

来自API for ShowWindow

nCmdShow

Type: int

Controls how the window is to be shown. This parameter is ignored the first time an application calls ShowWindow, if the program that launched the application provides a STARTUPINFO structure. Otherwise, the first time ShowWindow is called, the value should be the value obtained by the WinMain function in its nCmdShow parameter. In subsequent calls, this parameter can be one of the following values.

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