Skip to content

取按键状态

判断某个键盘按键是否已被按下。

语法

cpp
class RX784::Device {
    Status getKeyState(
        VirtualKeyCode virtualKeyCode,
        bool&          is_down
    );
};
class RX784::Device {
    Status getKeyState(
        VirtualKeyCode virtualKeyCode,
        bool&          is_down
    );
};
e
类名基类公开备注
RX784设备
方法名返回值类型公开备注
取按键状态整数型
参数名类型参考可空数组备注
虚拟键码字节型
是否按下逻辑型
.版本 2 .程序集 RX784设备, , 公开 .子程序 取按键状态, 整数型, 公开 .参数 虚拟键码, 字节型 .参数 是否按下, 逻辑型, 参考
py
class Device:
    def get_key_state(self,
        virtual_key_code: VirtualKeyCode
    ) -> Tuple[Status, bool]: ...
class Device:
    def get_key_state(self,
        virtual_key_code: VirtualKeyCode
    ) -> Tuple[Status, bool]: ...

参数

名称英文说明
虚拟键码virtual key code要取状态的键的虚拟键码。

返回值

名称英文说明
状态码status成功返回
是否按下is down已按下则为真(true),未按下则为假(false)。

备注

虚拟键码是一种用于表示计算机键盘按键的编码方式,每个按键都对应一个唯一的虚拟键码。开发包提供了虚拟键码常量,分别为:

编程语言位置
C++enum class RX784::VirtualKeyCode
易语言可以使用易语言中的键代码常量
Pythonrx784.VirtualKeyCode

各按键对应的虚拟键码以及常量名称可通过 虚拟键码查询工具 查询。

示例

cpp
#include <iostream>
#include "rx784.hpp"
typedef RX784::VirtualKeyCode Vk;

int main() {
    RX784::Device device;
    RX784::Status status;
    bool isDown;

    device.open("COM1");

    status = device.getKeyState(Vk::kControlLeft, isDown);
    if (status == RX784::Status::kSuccess) {
        if (isDown) {
            std::cout << "已按下左 Ctrl 键" << std::endl;
        } else {
            std::cout << "未按下左 Ctrl 键" << std::endl;
        }
    } else {
        std::cout << status << std::endl;
    }

    device.close();
}
#include <iostream>
#include "rx784.hpp"
typedef RX784::VirtualKeyCode Vk;

int main() {
    RX784::Device device;
    RX784::Status status;
    bool isDown;

    device.open("COM1");

    status = device.getKeyState(Vk::kControlLeft, isDown);
    if (status == RX784::Status::kSuccess) {
        if (isDown) {
            std::cout << "已按下左 Ctrl 键" << std::endl;
        } else {
            std::cout << "未按下左 Ctrl 键" << std::endl;
        }
    } else {
        std::cout << status << std::endl;
    }

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

device = rx784.Device()

device.open('COM1')

status, is_down = device.get_key_state(Vk.CONTROL_LEFT)
if status == rx784.Status.SUCCESS:
    if is_down:
        print('已按下左 Ctrl 键')
    else:
        print('未按下左 Ctrl 键')
else:
    print(status)

device.close()
import rx784
Vk = rx784.VirtualKeyCode

device = rx784.Device()

device.open('COM1')

status, is_down = device.get_key_state(Vk.CONTROL_LEFT)
if status == rx784.Status.SUCCESS:
    if is_down:
        print('已按下左 Ctrl 键')
    else:
        print('未按下左 Ctrl 键')
else:
    print(status)

device.close()