3个版本
0.2.15 | 2024年7月18日 |
---|---|
0.2.14 | 2024年7月16日 |
0.2.13 | 2023年10月12日 |
0.2.12 |
|
0.1.9 |
|
#156 in Unix API
每月421次下载
320KB
1K SLoC
tasklist-rs
一个小的crate,让您可以轻松地在Windows上获取任务列表和进程信息
- 基于
windows-rs
crate
您可以获得哪些信息
- 进程名称、PID、父ID、线程ID。
- 进程启动时间、退出时间和CPU时间(包括内核时间和用户时间)。
- 进程路径和命令行参数。
- 进程SID和域/用户。
- 进程IO信息,包括所有
IO_COUNTERS
成员。 - 进程内存信息,包括所有
PROCESS_MEMORY_COUNTERS
成员。 - 进程句柄信息,使用
GetProcessHandleCount
Api。 - 进程文件信息,使用
GetFileVersionInfoExW
Api。 - 检查进程是否在WOW64环境中运行。
- 遍历所有进程
注意,某些信息在某些特定Windows版本中需要更高权限
示例
获取所有进程的PID、进程名称和用户。
use tasklist;
fn main(){
unsafe{
let tl = tasklist::Tasklist::new();
tasklist::enable_debug_priv();
for i in tl{
println!("{} {} {}",i.get_pid(),i.get_pname(),i.get_user());
}
}
}
获取所有进程名称、PID、公司名称、文件描述。
use tasklist;
fn main(){
tasklist::enable_debug_priv();
for i in unsafe{tasklist::Tasklist::new()}{
let cpn = match i.get_file_info().get("CompanyName"){
Some(h)=>h.to_string(),
None=>"".to_string(),
};
let des = match i.get_file_info().get("FileDescription"){
Some(h)=>h.to_string(),
None=>"".to_string(),
};
println!("\t{} \t{} \t{} \t{}",i.get_pname(),i.get_pid(),cpn,des)
}
}
用法
将以下内容添加到您的 Cargo.toml
[dependencies]
tasklist = "0.2.15"
依赖项
~0–36MB
~527K SLoC