package Func; import com.jacob.activeX.ActiveXComponent; public class Press { private ActiveXComponent activeDm=null; public Press(ActiveXComponent active) { this.activeDm=active; } public Press(){ } /** * 按下指定的键一定的时间后放开 * @param keyCode * @param sleep */ public void keyPressTime(int keyCode,int sleep){ try { activeDm.invoke("KeyDown",keyCode); try { Thread.sleep(sleep); } catch (InterruptedException e) { e.printStackTrace(); } activeDm.invoke("KeyUp",keyCode); } catch (Exception e) { new Func.File().log("按下指定键一段时间异常捕获:"+e.getMessage()); } } /** * 按下某键 * <li>keyCode:传入按键码 */ public void keyPress(int keyCode){ try { activeDm.invoke("KeyPress",keyCode); } catch (Exception e) { new Func.File().log("按键异常捕获"+e.getMessage()); } } /** * 按住某键(按下某个键位并不弹起)搭配keyUp使用 * <li>keyCode:传入按键码 */ public void keyDown(int keyCode){ try { activeDm.invoke("KeyDown",keyCode); } catch (Exception e) { new Func.File().log("按键按住异常捕获"+e.getMessage()); } } /** * 按住某键(按下某个键位并不弹起)搭配keyDown使用 * <li>keyCode:传入按键码 */ public void keyUp(int keyCode){ try { activeDm.invoke("KeyUp",keyCode); } catch (Exception e) { new Func.File().log("按键弹起异常捕获"+e.getMessage()); } } /** * 将java.awt.event.KeyEvent.getKeyCode转换为dm用的按键码 * @param keyCode java.awt.event.KeyEvent * @return DM用的按键码 */ public int keyCodeTransform(int keyCode){ switch(keyCode){ case 45: //- keyCode=189; break; case 61: //= keyCode=187; break; case 10: //Enter keyCode=13; break; case 91: //[ keyCode=219; break; case 93: //] keyCode=221; break; case 92: // \ keyCode=220; break; case 59: // ; keyCode=186; break; case 44: // , keyCode=188; break; case 46: // . keyCode=190; break; case 47: // / keyCode=191; break; } return keyCode; } /** * 将某些不能输出显示的按键为正常文字可供用户看到 * @param keyCode 传入按键码,传入的为dm的按键码 * @param oldName 原本的名字,像是enter、空格键等,此传入会失效,返回最新的 * @return 返回键名,如Enter、BackSpace、空格、上……等 */ public String keyCodeName(int keyCode,String oldName){ String result=null; switch(keyCode){ case 27: result="Esc"; break; case 112: result="F1"; break; case 113: result="F2"; break; case 114: result="F3"; break; case 115: result="F4"; break; case 116: result="F5"; break; case 117: result="F6"; break; case 118: result="F7"; break; case 119: result="F8"; break; case 120: result="F10"; break; case 121: result="F11"; break; case 122: result="F12"; break; case 145: result="Scroll Lock"; break; case 8: result="BackSpace"; break; case 20: result="Caps Lock"; break; case 16: result="Shift"; break; case 17: result="Ctrl"; break; case 18: result="Alt"; break; case 32: result="空格"; break; case 38: result="上"; break; case 40: result="下"; break; case 37: result="左"; break; case 39: result="右"; break; case 13: result="Enter"; break; default: result=oldName; break; } return result; } }