java 对应的Windows键值

版权声明: https://blog.csdn.net/qq_35370790/article/details/79452853

Windows键盘键值转java KeyEvent键值方法:

/**
     * Windows键盘键值转java KeyEvent键值
     *
     * @param keyValue
     * @return
     */
    public static Integer winKeyTurnKeyEvent(Integer keyValue) {
        switch (keyValue) {
            case 13: // 回车键
                return 10;
            case 91: // Windows键
                return 524;
            case 188: // ,键
                return 44;
            case 189: // -键
                return 45;
            case 190: // .键
                return 46;
            case 191: // /键
                return 47;
            case 186: // ;键
                return 59;
            case 219: // [键
                return 91;
            case 220: // \键
                return 92;
            case 221: // ]键
                return 93;
            case 46: // delete键
                return 127;
            case 45: // insert键
                return 155;
            default:
                return keyValue;
        }
    }

java 对应的Windows键值

1 --> 49

2 --> 50
3 --> 51
4 --> 52
5 --> 53
6 --> 54
7 --> 55
8 --> 56
9 --> 57

0 --> 48


A --> 65
B --> 66
C --> 67
D --> 68
E --> 69
F --> 70
G --> 71
H --> 72
I --> 73
J --> 74
K --> 75
L --> 76
M --> 77
N --> 78
O --> 79
P --> 80
Q --> 81
R --> 82
S --> 83
T --> 84
U --> 85
V --> 86
W --> 87
X --> 88
Y --> 89
Z --> 90


Backspace --> 8
Tab --> 9
Enter --> 10
Shift --> 16
Ctrl --> 17
Alt --> 18
Caps Lock --> 20
Esc --> 27

空格键 -->32
Windows --> 524


向左箭头 --> 37
向上箭头 --> 38
向右箭头 --> 39
向下箭头 --> 40


逗号 --> 44
减号 --> 45
句点 --> 46
斜杠 --> 47
分号 --> 59
等号 --> 61
左方括号 --> 91
反斜杠 --> 92
右方括号 --> 93
后引号 --> 192
引号 --> 222


Pause --> 19
Page Up --> 33
Page Down --> 34
End --> 35
Home --> 36
Delete --> 127
Scroll Lock --> 145
Insert --> 155


NumPad-0 --> 96
NumPad-1 --> 97
NumPad-2 --> 98
NumPad-3 --> 99
NumPad-4 --> 100
NumPad-5 --> 101
NumPad-6 --> 102
NumPad-7 --> 103
NumPad-8 --> 104
NumPad-9 --> 105
NumPad * --> 106
NumPad + --> 107
NumPad - --> 109
NumPad . --> 110
NumPad / --> 111
Num Lock --> 144


F1 --> 112
F2 --> 113
F3 --> 114
F4 --> 115
F5 --> 116
F6 --> 117
F7 --> 118
F8 --> 119
F9 --> 120
F10 --> 121
F11 --> 122

F12 --> 123

电脑控制工具类

package com.chen.utils;

import javax.imageio.ImageIO;
import java.awt.*;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.OutputStream;

public class ComputerControlUtils {

    private static Robot rb = null;
    private static Integer screenWidth = java.awt.Toolkit.getDefaultToolkit().getScreenSize().width;
    private static Integer screenHeight = java.awt.Toolkit.getDefaultToolkit().getScreenSize().height;

    static {
        try {
            rb = new Robot();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    /**
     * 获取屏幕分辨率 下标0:屏幕宽度 下标1:屏幕高低
     *
     * @return
     */
    public static Integer[] getScreenSize() {
        Integer[] integers = {screenWidth, screenHeight};
        return integers;
    }

    /**
     * 获取当前屏幕宽度(像素)
     *
     * @return
     */
    public static Integer getScreenSizeWidth() {
        return screenWidth;
    }

    /**
     * 获取当前屏幕高度(像素)
     *
     * @return
     */
    public static Integer getScreenSizeHeight() {
        return screenHeight;
    }


    /**
     * 电脑截屏图片
     *
     * @param pathANdName
     * @param outputStream
     */
    public static void captureScreen(String pathANdName, OutputStream outputStream) {
        Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
        Rectangle screenRectangle = new Rectangle(screenSize);
        Robot robot = null;
        try {
            robot = new Robot();
            if (pathANdName != null) {
                File f = new File(pathANdName);
                ImageIO.write(image, "png", f);
            }
            if (outputStream != null) {
                ImageIO.write(image, "png", outputStream);
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    /**
     * 写路径
     *
     * @param path
     * @param fileName
     */
    public static void captureScreenPath(String path, String fileName) {
        captureScreen(path + fileName, null);
    }

    /**
     * 写输出流
     *
     * @param outputStream
     */
    public static void captureScreenOut(OutputStream outputStream) {
        captureScreen(null, outputStream);
    }

    /**
     * 单击一个或多个键盘键
     *
     * @param keyValues(可增长变量)
     */
    public static void clickKey(Integer... keyValues) {
        pressKey(keyValues);
        rb.delay(200);
        putKey(keyValues);
    }

    /**
     *  睡眠指定的时间。
     * @param ms
     */
    public static void delay(Integer ms){
        rb.delay(ms);
    }

    /**
     * 按下一个或多个按钮
     *
     * @param keyValues
     */
    public static void pressKey(Integer... keyValues) {
        for (Integer i : keyValues) {
            rb.keyPress(i);
        }
    }

    /**
     * 放开一个或多个按钮
     *
     * @param keyValues
     */
    public static void putKey(Integer... keyValues) {
        for (Integer i : keyValues) {
            rb.keyRelease(i);
        }
    }

    /**
     * 将鼠标指针移动到给定屏幕坐标
     *
     * @param x
     * @param y
     */
    public static void mouseMove(Integer x, Integer y) {
        System.out.println(x + "  " + y);
        rb.mouseMove(x, y);
    }

    /**
     * 获取本机的分辨率,再根据传入的分辨率调整鼠标位置
     * @param width
     * @param height
     * @param x
     * @param y
     */
    public static void proportionAdjustMouseMove(Integer width, Integer height, Integer x, Integer y){
        System.out.println(screenWidth + " " + screenHeight);
        mouseMove((int)Math.round(screenWidth * 1.0 / width * x), (int)Math.round(screenHeight * 1.0 / height * y));
    }

    /**
     * 获取当前鼠标位置
     *
     * @param
     */
    public static Point getMouseLocation() {
        return java.awt.MouseInfo.getPointerInfo().getLocation();
    }

    /**
     * 获取当前鼠标位置X
     *
     * @param
     */
    public static Integer getMouseLocationX() {
        return getMouseLocation().x;
    }

    /**
     * 获取当前鼠标位置Y
     *
     * @param
     */
    public static Integer getMouseLocationY() {
        return getMouseLocation().y;
    }

    /**
     * 按下一个或多个鼠标按钮
     *
     * @param buttons
     */
    public static void mousePress(Integer buttons) {
        rb.mousePress(buttons);
    }

    /**
     * 释放一个或多个鼠标按钮
     *
     * @param buttons
     */
    public static void mouseRelease(Integer buttons) {
        rb.mouseRelease(buttons);
    }

    /**
     * 点击一个或多个鼠标按钮
     * @param buttons
     */
    public static void clickMouse(Integer buttons){
        mousePress(buttons);
        rb.delay(200);
        mouseRelease(buttons);
    }

    /**
     * 鼠标滑轮滚动
     *
     * @param wheelAmt
     */
    public static void mouseWheel(Integer wheelAmt) {
        rb.mouseWheel(wheelAmt);
    }


    /**
     * Windows鼠标键值转java InputEvent(注:这里只有三个键)
     *
     * @param mouseValue
     * @return
     */
    public static Integer winMouseTurnMouseEvent(Integer mouseValue) {
        switch (mouseValue) {
            case 1:  // 鼠标左键
                return 16;
            case 2:  // 鼠标中键
                return 8;
            case 3: //鼠标右键
                return 4;
            default:
                return mouseValue;
        }
    }

    /**
     * Windows键盘键值转java KeyEvent键值
     *
     * @param keyValue
     * @return
     */
    public static Integer winKeyTurnKeyEvent(Integer keyValue) {
        switch (keyValue) {
            case 13: // 回车键
                return 10;
            case 91: // Windows键
                return 524;
            case 188: // ,键
                return 44;
            case 189: // -键
                return 45;
            case 190: // .键
                return 46;
            case 191: // /键
                return 47;
            case 186: // ;键
                return 59;
            case 219: // [键
                return 91;
            case 220: // \键
                return 92;
            case 221: // ]键
                return 93;
            case 46: // delete键
                return 127;
            case 45: // insert键
                return 155;
            default:
                return keyValue;
        }
    }
}

猜你喜欢

转载自blog.csdn.net/qq_35370790/article/details/79452853