tasklist

Crates.iotasklist
lib.rstasklist
version0.2.15
sourcesrc
created_at2022-06-23 14:57:00.266789
updated_at2024-07-18 01:24:58.034766
descriptionGet the tasklist and process information on windows
homepage
repositoryhttps://github.com/yalishandar/tasklist-rs
max_upload_size
id611918
size390,296
tkos (yalishandar)

documentation

https://docs.rs/tasklist/latest/tasklist/

README

tasklist-rs

tasklist-rs

a small crate let you can easily get tasklist and process information on windows

what information you can get

  1. Process name,pid,parrentID,theradsID.
  2. Process start_time,exit_time,and CPU_time(including kernel time and user time).
  3. Process path and commandline params.
  4. Process SID and Domain/User.
  5. Process IO infomation , including all of IO_COUNTERS member.
  6. Process memory information , including all of PROCESS_MEMORY_COUNTERS member.
  7. Process handles information , use GetProcessHandleCount Api.
  8. Process file infomation , use GetFileVersionInfoExW Api.
  9. Check whether the process is running in the WOW64 environment.
  10. Iterate over all processes

remember some infomation need higher privilege in some specific windows versions

example

Get all process pid , process name and user .

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());
        }
    }


}

tasklist-rs

Get all process name , pid , company name , file description.

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)
       }
}

tasklist-rs

Usage

Add this to your Cargo.toml:

[dependencies]
tasklist = "0.2.15"
Commit count: 19

cargo fmt