??????ν???????????????

?????????????????????ü??????????????????????Щ??????????????????????????????????????????????????????ò???????API??????????????????????????????????????????????????????????????

???????????????JNA??https://github.com/twall/jna????JNA??????JNI?????????????????JNI??????????á? JNA????jna.jar??platform.jar?????????????????????????????????platform.jar?С???????????????JNA?а?????mac??unix??win32??????????????API??????????

 

??????API???????JNA???????????????????£?

????????????????μ???https://github.com/twall/jna/blob/master/www/Mappings.md

????????????windows??????????????????????????????????????

????JNA?й???windows??????com.sun.jna.platform.win32????User32??????????????????windows??API??????á?????????????????SendMessage???С?????????????????????SendMessage?????????????£?

1.import com.sun.jna.Native; 
2.import com.sun.jna.platform.win32.User32; 
3.import com.sun.jna.win32.W32APIOptions; 
4. 
5.public interface User32Ext extends User32 { 
6. 
7.    User32Ext USER32EXT = (User32Ext) Native.loadLibrary("user32"?? User32Ext.class?? W32APIOptions.DEFAULT_OPTIONS); 
8.     
9.    /**
10.     * ???????
11.     * @param lpParent ????????????????
12.     * @param lpChild ????????????????
13.     * @param lpClassName ????
14.     * @param lpWindowName ??????
15.     * @return ???????????
16.     */ 
17.    HWND FindWindowEx(HWND lpParent?? HWND lpChild?? String lpClassName?? String lpWindowName); 
18. 
19.    /**
20.     * ??????洰??????????????д????root
21.     * @return ???????????
22.     */ 
23.    HWND GetDesktopWindow(); 
24.     
25.    /**
26.     * ??????????
27.     * @param hWnd ???????
28.     * @param dwFlags ???????
29.     * @param bVk ????????
30.     * @param dwExtraInfo ??????????0????
31.     * @return
32.     */ 
33.    int SendMessage(HWND hWnd?? int dwFlags?? byte bVk?? int dwExtraInfo); 
34. 
35.    /**
36.     * ??????????
37.     * @param hWnd ???????
38.     * @param Msg ???????
39.     * @param wParam ??0????
40.     * @param lParam ??????????????????????????null
41.     * @return
42.     */ 
43.    int SendMessage(HWND hWnd?? int Msg?? int wParam?? String lParam); 
44.     
45.    /**
46.     * ??????????
47.     * @param bVk ????????
48.     * @param bScan ?? ((byte)0) ????
49.     * @param dwFlags ???????????
50.     * @param dwExtraInfo ??0????
51.     */ 
52.    void keybd_event(byte bVk?? byte bScan?? int dwFlags?? int dwExtraInfo); 
53.     
54.    /**
55.     * ???????????????????λ??????????
56.     * @param hWnd ?輤?????????
57.     * @param fAltTab ???С????????
58.     */ 
59.    void SwitchToThisWindow(HWND hWnd?? boolean fAltTab); 
60.     
61.}