Winapi java jni SendMessageA WM_键关闭不起作用(

Winapi java jni SendMessageA WM_键关闭不起作用(,winapi,keydown,sendmessage,Winapi,Keydown,Sendmessage,我正在尝试向按键发送消息,寻找正确的窗口句柄,但该消息没有得到…为什么?在任何事情出现之前,您可能需要额外发送WM_KEYUP消息。查看自然按键的事件序列,以确保您模拟所有必需的事件。我尝试过,但不起作用…像WM一样_鼠标点击和WM_LBUTTONDOWN public interface User32Extra extends User32 { User32Extra INSTANCE = (User32Extra) Native.loadLibrary("user32", U


我正在尝试向按键发送消息,寻找正确的窗口句柄,但该消息没有得到…为什么?

在任何事情出现之前,您可能需要额外发送WM_KEYUP消息。查看自然按键的事件序列,以确保您模拟所有必需的事件。我尝试过,但不起作用…像WM一样_鼠标点击和WM_LBUTTONDOWN
public interface User32Extra extends User32 {
        User32Extra INSTANCE = (User32Extra) Native.loadLibrary("user32", User32Extra.class, W32APIOptions.DEFAULT_OPTIONS);
        public HWND FindWindow(String string, String string1);
        long SendMessageA(HWND hWnd, int msg, WPARAM wPAram, LPARAM lParam);

}



public class ecbot {
    //http://msdn.microsoft.com/en-us/library/windows/desktop/ms645607(v=vs.85).aspx
    private static int WM_KEYDOWN = 256;
    public static void main(String[] args) {
        HWND hWnd = User32.INSTANCE.FindWindow("Notepad", null);
        System.out.println(hWnd.toString());
        LPARAM lParam1 = new LPARAM(1);
        LPARAM lParam0 = new LPARAM(0);        
        for (int i = 0; i < 1000; i++) {
            WinDef.WPARAM wParam = new WinDef.WPARAM(i);
            User32Extra.INSTANCE.SendMessageA(hWnd, WM_KEYDOWN, wParam, lParam1);
            User32Extra.INSTANCE.SendMessageA(hWnd, WM_KEYDOWN, wParam, lParam0);
            User32Extra.INSTANCE.SendMessageA(hWnd, WM_KEYDOWN, wParam, null);
        }
    }
}