19 个版本
0.9.1 | 2023 年 6 月 12 日 |
---|---|
0.9.0 | 2021 年 10 月 19 日 |
0.8.1 |
|
0.8.0 | 2021 年 5 月 6 日 |
0.1.1 | 2019 年 1 月 27 日 |
149 在 Rust 模式
567,103 每月下载量
用于 1,787 个crate (9 直接)
51KB
849 行
Crossterm Windows API 抽象
此crate提供了一些常见WinAPI函数的包装器。
此库的原始目的是为了crossterm,但也可以独立使用。不过请注意,它不稳定,因为API的一些更改是可以预期的。
功能
此crate提供了一些关于读取输入、控制台屏幕缓冲区和处理的抽象。
以下 WinAPI 调用
- CONSOLE_SCREEN_BUFFER_INFO(用于提取如光标位置、终端大小等信息)
- CONSOLE_FONT_INFO(用于提取如大小等字体信息)
- HANDLE(运行 WinAPI 函数所需的句柄)
- SetConsoleActiveScreenBuffer(激活其他屏幕缓冲区)
- Set/GetConsoleMode(例如,禁用输出的控制台模式)
- SetConsoleTextAttribute(例如,着色)
- SetConsoleWindowInfo(更改缓冲区位置,例如滚动)
- FillConsoleOutputAttribute, FillConsoleOutputCharacter(用于用颜色或字符替换某些单元格块)
- SetConsoleInfo
- ReadConsoleW
- 信号量对象处理
示例
在示例存储库中有更多完整和详细的示例。
屏幕缓冲区信息
use crossterm_winapi::{ScreenBuffer, Handle};
fn print_screen_buffer_information() {
let screen_buffer = ScreenBuffer::current().unwrap();
// get console screen buffer information
let csbi = screen_buffer.info().unwrap();
println!("cursor post: {:?}", csbi.cursor_pos());
println!("attributes: {:?}", csbi.attributes());
println!("terminal window dimentions {:?}", csbi.terminal_window());
println!("terminal size {:?}", csbi.terminal_size());
}
句柄
use crossterm_winapi::{HandleType, Handle};
fn get_different_handle_types() {
let out_put_handle = Handle::new(HandleType::OutputHandle).unwrap();
let out_put_handle = Handle::new(HandleType::InputHandle).unwrap();
let curr_out_put_handle = Handle::new(HandleType::CurrentOutputHandle).unwrap();
let curr_out_put_handle = Handle::new(HandleType::CurrentInputHandle).unwrap();
}
依赖项
~175KB