Java JNA Postmessage不起作用

Java JNA Postmessage不起作用,java,jna,postmessage,user32,Java,Jna,Postmessage,User32,我正在尝试使用Postmessage向特定窗口发送击键,但它似乎对我不起作用。这是我的密码 import com.sun.jna.platform.win32.User32; import com.sun.jna.platform.win32.WinDef.HWND; import com.sun.jna.platform.win32.WinDef.LPARAM; import com.sun.jna.platform.win32.WinDef.WPARAM; public class ke

我正在尝试使用Postmessage向特定窗口发送击键,但它似乎对我不起作用。这是我的密码

import com.sun.jna.platform.win32.User32;
import com.sun.jna.platform.win32.WinDef.HWND;
import com.sun.jna.platform.win32.WinDef.LPARAM;
import com.sun.jna.platform.win32.WinDef.WPARAM;


public class keystroke {

   public static void main(String[] args){

      int WM_KEYDOWN = 0x0100;
      int WM_KEYUP = 0x0101;
      int WM_CHAR = 0x0102;

      int VK_A = 0x41;


      WPARAM wPARAM = new WPARAM(VK_A);
      LPARAM lPARAM = new LPARAM(0);

      HWND hwnd = User32.INSTANCE.FindWindow(null, "Notepad"); // window title

      User32.INSTANCE.ShowWindow(hwnd, 9); // SW_RESTOR
      User32.INSTANCE.SetForegroundWindow(hwnd); // bring to front

      User32.INSTANCE.SetFocus(hwnd);

      User32.INSTANCE.PostMessage(hwnd, WM_CHAR, wPARAM, lPARAM);

     }
}
当我换成这个的时候,它也不起作用

  User32.INSTANCE.PostMessage(hwnd, WM_KEYDOWN, wPARAM, lPARAM);
  User32.INSTANCE.PostMessage(hwnd, WM_KEYUP, wPARAM, lPARAM);

您需要一个单独的线程来运行事件泵。参见
contrib
中的低级键盘钩子示例。由我自己解决,需要使用FindWindowEx()查找子窗口“编辑”)