Skip to content

取鼠标按键状态

判断 3 个鼠标按键是否已被按下。

语法

cpp
class RX784::Device {
    Status getButtonsState(
        ButtonsState& buttonsState
    );
};
class RX784::Device {
    Status getButtonsState(
        ButtonsState& buttonsState
    );
};
e
类名基类公开备注
RX784设备
方法名返回值类型公开备注
取鼠标按键状态整数型
参数名类型参考可空数组备注
鼠标按键状态鼠标按键状态
.版本 2 .程序集 RX784设备, , 公开 .子程序 取鼠标按键状态, 整数型, 公开 .参数 鼠标按键状态, 鼠标按键状态, 参考
py
class Device:
    def get_buttons_state(self) -> Tuple[Status, Optional[ButtonsState]]: ...
class Device:
    def get_buttons_state(self) -> Tuple[Status, Optional[ButtonsState]]: ...

返回值

名称英文说明
状态码status成功返回
鼠标按键状态buttons state已按下则为真(true),未按下则为假(false)。

类型

cpp
struct RX784::ButtonsState {
    uint8_t left    : 1;
    uint8_t right   : 1;
    uint8_t middle  : 1;
    uint8_t button4 : 1;
    uint8_t button5 : 1;
};
struct RX784::ButtonsState {
    uint8_t left    : 1;
    uint8_t right   : 1;
    uint8_t middle  : 1;
    uint8_t button4 : 1;
    uint8_t button5 : 1;
};
e
数据类型名公开备注
鼠标按键状态
成员名类型传址数组备注
左键逻辑型
右键逻辑型
中键逻辑型
键4逻辑型
键5逻辑型
.版本 2 .数据类型 鼠标按键状态, 公开 .成员 左键, 逻辑型 .成员 右键, 逻辑型 .成员 中键, 逻辑型 .成员 键4, 逻辑型 .成员 键5, 逻辑型
py
@dataclass
class ButtonsState:
    left:    bool
    right:   bool
    middle:  bool
    button4: bool
    button5: bool
@dataclass
class ButtonsState:
    left:    bool
    right:   bool
    middle:  bool
    button4: bool
    button5: bool

示例

cpp
#include <cstdio>
#include "rx784.hpp"

int main() {
    RX784::Device device;
    RX784::Status status;
    RX784::ButtonsState buttonsState;

    device.open("COM1");

    status = device.getButtonsState(buttonsState);
    if (status == RX784::Status::kSuccess) {
        printf("左键: %s\n"
               "右键: %s\n"
               "右键: %s\n"
               " 键4: %s\n"
               " 键5: %s\n",
               buttonsState.left    ? "true" : "false",
               buttonsState.right   ? "true" : "false",
               buttonsState.middle  ? "true" : "false",
               buttonsState.button4 ? "true" : "false",
               buttonsState.button5 ? "true" : "false");
    } else {
        printf(RX784::statusToString(status).c_str());
    }

    device.close();
}
#include <cstdio>
#include "rx784.hpp"

int main() {
    RX784::Device device;
    RX784::Status status;
    RX784::ButtonsState buttonsState;

    device.open("COM1");

    status = device.getButtonsState(buttonsState);
    if (status == RX784::Status::kSuccess) {
        printf("左键: %s\n"
               "右键: %s\n"
               "右键: %s\n"
               " 键4: %s\n"
               " 键5: %s\n",
               buttonsState.left    ? "true" : "false",
               buttonsState.right   ? "true" : "false",
               buttonsState.middle  ? "true" : "false",
               buttonsState.button4 ? "true" : "false",
               buttonsState.button5 ? "true" : "false");
    } else {
        printf(RX784::statusToString(status).c_str());
    }

    device.close();
}
e
方法名返回值类型公开备注
_启动子程序整数型
变量名类型静态数组备注
设备RX784设备
状态码整数型
鼠标按键状态鼠标按键状态
设备.打开 (“COM1”)
状态码 = 设备.取鼠标按键状态 (鼠标按键状态)
如果 (状态码 = #RX784状态码_成功)
    调试输出 (“左键”, 鼠标按键状态.左键)
    调试输出 (“右键”, 鼠标按键状态.右键)
    调试输出 (“中键”, 鼠标按键状态.中键)
    调试输出 (“ 键4”, 鼠标按键状态.键4)
    调试输出 (“ 键5”, 鼠标按键状态.键5)
否则
    调试输出 (RX784状态码到文本 (状态码))
如果结束
设备.关闭 ()
返回 (0)
.版本 2 .子程序 _启动子程序, 整数型 .局部变量 设备, RX784设备 .局部变量 状态码, 整数型 .局部变量 鼠标按键状态, 鼠标按键状态 设备.打开 (“COM1”) 状态码 = 设备.取鼠标按键状态 (鼠标按键状态) .如果 (状态码 = #RX784状态码_成功) 调试输出 (“左键”, 鼠标按键状态.左键) 调试输出 (“右键”, 鼠标按键状态.右键) 调试输出 (“中键”, 鼠标按键状态.中键) 调试输出 (“ 键4”, 鼠标按键状态.键4) 调试输出 (“ 键5”, 鼠标按键状态.键5) .否则 调试输出 (RX784状态码到文本 (状态码)) .如果结束 设备.关闭 () 返回 (0)
py
import rx784

device = rx784.Device()

device.open('COM1')

status, buttons_state = device.get_buttons_state()
if status == rx784.Status.SUCCESS:
    print('左键: ', buttons_state.left)
    print('右键: ', buttons_state.right)
    print('中键: ', buttons_state.middle)
    print(' 键4: ', buttons_state.button4)
    print(' 键5: ', buttons_state.button5)
else:
    print(status)

device.close()
import rx784

device = rx784.Device()

device.open('COM1')

status, buttons_state = device.get_buttons_state()
if status == rx784.Status.SUCCESS:
    print('左键: ', buttons_state.left)
    print('右键: ', buttons_state.right)
    print('中键: ', buttons_state.middle)
    print(' 键4: ', buttons_state.button4)
    print(' 键5: ', buttons_state.button5)
else:
    print(status)

device.close()