4个版本
0.0.4 | 2021年4月27日 |
---|---|
0.0.3 | 2021年4月27日 |
0.0.2 | 2021年3月13日 |
0.0.1 | 2021年3月13日 |
#286 在 操作系统
每月下载 22 次
80KB
1.5K SLoC
系统扩展
系统扩展是一个跨平台的Rust库,它增加了管理操作系统操作的功能。系统扩展分为几个模块,包含不同的功能。
将以下内容添加到您的 Cargo.toml
文件中使用。
system-extensions = {version = "0.0.4", features = ["metadata", "processes", "dialogues"]}
功能
- 进程
- 元数据
- 对话框**
实验性功能
- 通知(仅限Windows)
实验性功能是可能尚未支持所有平台的模块。实验性功能中的API可能在将来发生变化。
** 不支持MacOS
功能
进程
进程模块提供了检测操作系统上运行进程的功能。
use system_extensions::processes::processes::find_process_id;
fn main() {
let result = find_process_id("Discord.exe");
println!("Program Id: {:?}", result.unwrap());
}
元数据
此模块允许您修改文件的元数据。
文件日期
您可以更改创建、修改和更改的日期。
use std::path::Path;
use system_extensions::metadata::time::{FileTime, set_creation_date};
fn main() {
set_creation_date(Path::new("./my_file.txt"), &FileTime::new(25, 12, 2021));
}
文件属性
您还可以设置文件的属性。
use std::path::Path;
use system_extensions::metadata::attribute::{Attributes, set_attribute};
fn main(){
set_attribute(Path::new("./my_file.txt"), Attributes::HIDDEN);
}
或检查文件是否具有属性
use std::path::Path;
use system_extensions::metadata::attribute::{Attributes, has_attribute};
fn main(){
let value: bool = has_attribute(Path::new("./my_file.txt"), Attributes::HIDDEN);
}
对话框
对话框是作为用户交互的GUI菜单。
消息框
消息框是显示信息、警告或错误的GUI弹出菜单。
use system_extensions::dialogues::messagebox::{MessageBox, BoxReturn, IconType, WindowType};
fn main(){
let result = MessageBox::new("Error Message Dialogue", "This error is provided by System Extensions!")
.set_icon_type(IconType::ICON_ERROR)
.set_window_type(WindowType::OK_CANCEL)
.show();
if result.unwrap() == BoxReturn::OK {
println!("The user acknowledge the error!");
}
}
文件框
文件框是一个允许用户保存或打开文件的框。
(目前不支持Mac)
use system_extensions::dialogues::filebox::FileBox;
use std::path::Path;
fn main(){
let result = FileBox::new()
.filter("PNG", "*.png")
.filter("JPG", "*.jpg")
.filter("GIF", "*.gif")
.directory(Path::new("D:\\"))
.save("image.png");
println!("{}", result.expect("The file was not saved!").to_str().unwrap());
}
通知
** 此功能为实验性,仅适用于Windows。 **
use system_extensions::notifications::notification::SimpleNotification;
fn main() {
let notif = SimpleNotification::new("Rust Notification".to_string())
.set_app_id("{1AC14E77-02E7-4E5D-B744-2EB1AE5198B7}\\WindowsPowerShell\\v1.0\\powershell.exe".to_string())
.add_text("This notification was sent via rust!".to_string())
.add_text("This uses the Windows Notification Center.".to_string())
.display();
}
依赖关系
~1–35MB
~619K SLoC