取按键状态
判断某个键盘按键是否已被按下。
语法
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 |
易语言 | 可以使用易语言中的键代码常量 |
Python | rx784.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()