process_list

Crates.ioprocess_list
lib.rsprocess_list
version0.2.1
sourcesrc
created_at2020-01-12 17:34:03.879706
updated_at2020-01-18 23:31:07.341444
descriptionCrate for listing the processes open in the OS, usually for retrieving their ID by their name.
homepage
repositoryhttps://github.com/mgostIH/process_list
max_upload_size
id197868
size15,501
Modesti Dennis (mgostIH)

documentation

https://docs.rs/process_list/0.2.1/x86_64-pc-windows-msvc/process_list/

README

Functionalities

This crate exposes functionalities for dealing with processes and modules loaded inside them in a streaming manner.

Process Listing

This crate exposes a for_each_process function to deal sequentially with every process open in the operating system.

Example

Printing every process to stdout

use std::path::{Path, PathBuf};
use process_list::for_each_process;
fn print_processes(id : u32, name : &Path) {
    println!("Id: {} --- Name: {}", id, name.display());
}

for_each_process(print_processes).unwrap();

Modules Listing

This crate exposes a for_each_module function to deal sequentially with every module loaded in a process.

Example

Printing every module loaded in the current process to stdout

use process_list::for_each_module;
use std::process;

fn print_stuff() {
    env_logger::init();
    for_each_module(process::id(), |(address, size), name| {
        println!("{:016X} - {} \t {}", address, size, name.display())
    })
    .unwrap();
}

Features

You can enable the log feature of this crate in order to get logging from it.

Support

For now only Windows is supported, but it should be simple enough to port on other operating systems.

It's not a priority but pull requests are well accepted.

Commit count: 13

cargo fmt