java 自动化工具有哪些_java实现自动化工具

1 packagecom.cheng2839.utils;2

3 importcom.clb.util.auto.Logger;4

5 importjavax.imageio.ImageIO;6 import javax.swing.*;7 import java.awt.*;8 importjava.awt.datatransfer.Clipboard;9 importjava.awt.datatransfer.DataFlavor;10 importjava.awt.datatransfer.StringSelection;11 importjava.awt.datatransfer.Transferable;12 importjava.awt.datatransfer.UnsupportedFlavorException;13 importjava.awt.image.BufferedImage;14 importjava.io.File;15 importjava.io.IOException;16

17 /**

18 * 自动化工具:自动操作鼠标、键盘等19 * 包含鼠标单击、双击、右击、按键、组合按键、剪贴板、提示框、提示音、截屏、屏幕大小、坐标等等。20 *@authorcheng283921 * @2018年11月16日22 */

23 public classMKAutoKit {24 private static Robot robot = null;25

26 static

27 {28 try

29 {30 robot = newRobot();31 } catch(AWTException e) {32 e.printStackTrace();33 }34 }35

36 /**

37 * 点击38 *@paramx39 *@paramy40 *@authorcheng283941 * @2018年11月16日42 */

43 public static void leftClick(int x, inty)44 {45 robot.mouseMove(x, y);46 robot.mousePress(16);47 sleep(10L);48 robot.mouseRelease(16);49 }50

51 /**

52 * 右击53 *@paramx54 *@paramy55 *@authorcheng283956 * @2018年11月16日57 */

58 public static void rightClick(int x, inty)59 {60 robot.mouseMove(x, y);61 robot.mousePress(8);62 sleep(10L);63 robot.mouseRelease(8);64 }65

66 /**

67 * 按键68 *@paramkeyCode69 *@authorcheng283970 * @2018年11月16日71 */

72 public static void key(intkeyCode)73 {74 robot.keyPress(keyCode);75 sleep(10L);76 robot.keyRelease(keyCode);77 }78

79 /**

80 * 组合按键81 *@paramkeyCodes82 *@authorcheng283983 * @2018年11月16日84 */

85 public static void keys(int[] keyCodes)86 {87 for (int i = 0; i < keyCodes.length; i++) {88 robot.keyPress(keyCodes[i]);89 }90 sleep(10L);91 for (int i = keyCodes.length - 1; i >= 0; i--) {92 robot.keyRelease(keyCodes[i]);93 }94 }95

96 /**

97 * 获取当前鼠标的坐标98 *@return

99 *@authorcheng2839100 * @2018年11月16日101 */

102 public staticPoint x_y()103 {104 returnMouseInfo.getPointerInfo().getLocation();105 }106

107 /**

108 * 获取剪贴板内容109 *@return

110 *@authorcheng2839111 * @2018年11月16日112 */

113 public staticString getClipboard()114 {115 Clipboard clipboard =Toolkit.getDefaultToolkit().getSystemClipboard();116 Transferable content = clipboard.getContents(null);117 if(content.isDataFlavorSupported(DataFlavor.stringFlavor)) {118 try

119 {120 return(String)content.getTransferData(DataFlavor.stringFlavor);121 }122 catch(UnsupportedFlavorException e)123 {124 e.printStackTrace();125 }126 catch(IOException e)127 {128 e.printStackTrace();129 }130 }131 return null;132 }133

134 /**

135 * 提示音136 *@authorcheng2839137 * @2018年11月16日138 */

139 public static voidbeep()140 {141 Toolkit.getDefaultToolkit().beep();142 }143

144 /**

145 * 设置剪贴板146 *@paramdata147 *@authorcheng2839148 * @2018年11月16日149 */

150 public static voidsetClipboard(String data)151 {152 Clipboard clipboard =Toolkit.getDefaultToolkit().getSystemClipboard();153 StringSelection selection = newStringSelection(data);154 clipboard.setContents(selection, null);155 }156

157 /**

158 * 鼠标移动监听159 *@parammills160 *@authorcheng2839161 * @2018年11月16日162 */

163 public static void mouseMove(longmills)164 {165 long time =System.currentTimeMillis();166 Point p =x_y();167 while (System.currentTimeMillis() - time <=mills)168 {169 Point newp =x_y();170 if ((newp.x != p.x) || (newp.y !=p.y)) {171 Logger.info("( " + newp.x + ", " + newp.y + " )");172 }173 p =newp;174 sleep(100L);175 }176 }177

178

179 /**

180 * sleep181 *@parammillis182 *@authorcheng2839183 * @2018年11月16日184 */

185 public static void sleep(longmillis)186 {187 try

188 {189 Thread.sleep(millis);190 }191 catch(InterruptedException e)192 {193 e.printStackTrace();194 }195 }196

197 /**

198 * 屏幕大小199 *@return

200 *@authorcheng2839201 * @2018年11月16日202 */

203 public staticDimension getScreenSize()204 {205 returnToolkit.getDefaultToolkit().getScreenSize();206 }207

208 /**

209 * 弹框提示210 *@parammessage211 *@authorcheng2839212 * @2018年11月16日213 */

214 public static voidshowTip(String message)215 {216 JOptionPane.showMessageDialog(null, message, "tip", -1);217 }218

219 /**

220 * 截取全屏并保存为图片221 *@paramimgPath222 *@return

223 *@authorcheng2839224 * @2018年11月16日225 */

226 public staticFile getScreenImg(String imgPath)227 {228 BufferedImage image = robot.createScreenCapture(newRectangle(getScreenSize()));229 try

230 {231 File imgFile = newFile(imgPath);232 ImageIO.write(image, "JPG", imgFile);233 returnimgFile;234 }235 catch(IOException e)236 {237 e.printStackTrace();238 }239 return null;240 }241 }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值