#操作系统 #文件元数据 #元数据 #进程 #扩展

system-extensions

一套健壮的操作系统操作扩展

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

MIT 协议

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菜单。

消息框

Immage of a messagebox.
消息框是显示信息、警告或错误的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