| Crates.io | winmix |
| lib.rs | winmix |
| version | 0.1.3 |
| created_at | 2024-04-28 14:28:31.514138+00 |
| updated_at | 2025-08-28 11:19:08.581389+00 |
| description | Change Windows Volume Mixer via Rust |
| homepage | |
| repository | https://github.com/UnexomWid/winmix |
| max_upload_size | |
| id | 1223287 |
| size | 27,919 |
WinMix is a rust library that allows you to individually change the volume of each program in the Windows Volume Mixer.
For example, you can set the volume of chrome.exe to 0 while leaving other apps alone.
⚠ This libary uses unsafe functions from the windows crate. ⚠
use winmix::WinMix;
unsafe {
let winmix = WinMix::default();
// Get a list of all programs that have an entry in the volume mixer
let sessions = winmix.enumerate()?;
for session in sessions {
// PID and path of the process
println!("pid: {} path: {}", session.pid, session.path);
// Mute
session.vol.set_mute(true)?;
session.vol.set_mute(false)?;
// 50% volume
session.vol.set_master_volume(0.5)?;
// Back to 100% volume
session.vol.set_master_volume(1.0)?;
// Get the current volume, or see if it's muted
let vol = session.vol.get_master_volume()?;
let is_muted = session.vol.get_mute()?;
println!("Vol: {} Muted: {}", vol, is_muted);
println!();
}
}
WinMix was created by UnexomWid. It is licensed under MIT OR Apache 2.