gpt4 book ai didi

Java JNA FindWindow() - 查找函数时出错 'FindWindow' : The specified procedure could not be found

转载 作者:行者123 更新时间:2023-11-29 03:24:10 26 4
gpt4 key购买 nike

我正在尝试使用 JNA 将名为 MyWindowTitle 的窗口置于最前面。

import com.sun.jna.Native;
import com.sun.jna.win32.StdCallLibrary;
import com.sun.jna.platform.win32.WinDef.HWND;

public class ToFront {

public static interface User32 extends StdCallLibrary {
final User32 instance = (User32) Native.loadLibrary ("user32", User32.class);
HWND FindWindow(String winClass, String title);
boolean ShowWindow(HWND hWnd, int nCmdShow);
boolean SetForegroundWindow(HWND hWnd);

}


public static void main(String[] args) {
HWND hwnd = User32.instance.FindWindow(null, "MyWindowTitle");
User32.instance.ShowWindow(hwnd, 9);
User32.instance.SetForegroundWindow(hwnd);
}

}

我收到以下异常 java.lang.UnsatisfiedLinkError: Error looking up function 'FindWindow': The specified procedure could not be found.

最佳答案

您可以使用以下调用 FindWindowEx 的代码。请注意,FindFindow 不会根据这篇文章搜索子窗口 http://msdn.microsoft.com/en-us/library/windows/desktop/ms633499(v=vs.85).aspx

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

public class SomeClass
{
public static interface User32 extends StdCallLibrary
{
final User32 instance = (User32) Native.loadLibrary ("user32", User32.class);
HWND FindWindowExA(HWND hwndParent, HWND childAfter, String className, String windowName);
HWND FindWindowA(String className, String windowName);
}

public static void main(String[] args)
{
HWND hwndShell = User32.instance.FindWindowExA(null, null, "Shell_TrayWnd", null);
HWND hWnd = User32.instance.FindWindowExA(hwndShell, null, "Start", "Start");
}
}

关于Java JNA FindWindow() - 查找函数时出错 'FindWindow' : The specified procedure could not be found,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21962086/

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