11个版本
0.1.5 | 2021年11月13日 |
---|---|
0.1.4 | 2020年3月17日 |
0.1.3 | 2020年2月16日 |
#66 in Windows API
443 每月下载量
在 asuro-timer 中使用
180KB
2.5K SLoC
Win32Console
暴露与Windows控制台交互的函数。
见: https://docs.microsoft.com/en-us/windows/console/console-functions
使用方法
将此添加到您的 Cargo.toml
[dependencies]
win32console = "0.1.5"
示例
use win32console::console::WinConsole;
use win32console::structs::input::*;
fn main() {
// Virtual key codes
// https://docs.microsoft.com/en-us/windows/win32/inputdev/virtual-key-codes
const ESCAPE : u16 = 0x1B;
const BACKSPACE: u16 = 0x08;
const ENTER : u16 = 0x0D;
const SPACE : u16 = 0x20;
loop{
// Get the current input event
if let KeyEvent(key) = WinConsole::input().read_single_input().unwrap(){
// Only check for key down events
if key.key_down{
let char_value = key.u_char;
// Write only if is alphanumeric or punctuation
if char_value.is_ascii_alphanumeric() || char_value.is_ascii_punctuation(){
let mut value : [u8; 1] = [0];
char_value.encode_utf8(&mut value);
WinConsole::output().write_utf8(&value);
}
else{
match key.virtual_key_code {
ESCAPE => { break; },
ENTER => { WinConsole::output().write_utf8("\n".as_bytes()); }
SPACE => { WinConsole::output().write_utf8(" ".as_bytes()); },
BACKSPACE => { WinConsole::output().write_utf8(b"\x08 \x08"); },
_ => {}
}
}
}
}
}
}
实现
这里 是此库中实现的控制台方法列表。
此外,此库还提供了以下函数
// Clears the screen
WinConsole::output().clear();
// Reads a 'String' from the console
WinConsole::input().read_string();
// Makes and tone sound
WinConsole::beep(u32, u32);
// Sets the foreground color
WinConsole::output().set_foreground_color(ConsoleColor);
// Sets the background color
WinConsole::output().set_background_color(ConsoleColor);
// Gets the foreground color
WinConsole::output().get_foreground_color();
// Gets the background color
WinConsole::output().get_background_color();
依赖项
~225KB