Crate win_ctx

Crate win_ctx 

Source
Expand description

§Features

  • Create and edit context menu entries and sub-entries
  • Toggle the pre-Windows 11 context menu

§Basic examples

The following code creates a top-level context menu entry that appears on right-clicked folders and opens the target folder in the terminal.

use win_ctx::*;

CtxEntry::new_with_options(
    "Open in terminal",
    &ActivationType::Folder,
    &EntryOptions {
        command: Some("cmd /s /k pushd \"%V\""),
        icon: Some("C:\\Windows\\System32\\cmd.exe"),
        position: None,
        separator: None,
        extended: false,
    }
)?;

The following code creates a context menu entry with child entries that each open the target folder in the selected program.

To reduce line count, the more basic non-options functions can be used, and individual values are then set on the resulting entries.

use win_ctx::{CtxEntry, ActivationType};

let mut parent = CtxEntry::new("Open directory in", &ActivationType::Background)?;
parent.set_extended(true);

let mut child_1 = parent.new_child("Terminal")?;
child_1.set_command(Some("cmd /s /k pushd \"%V\""))?;
child_1.set_icon(Some("C:\\Windows\\System32\\cmd.exe"))?;

let mut child_2 = parent.new_child("Powershell")?;
child_2.set_command(Some("powershell -noexit -command Set-Location -literalPath '%V'"))?;
child_2.set_icon(Some("C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\powershell.exe"))?;

§Errors

It’s possible that an entry’s underlying registry key goes out of sync, so most CtxEntry functions verify this and return a std::io::Result.

Errors will have an ErrorKind of either:

  • PermissionDenied for insufficient privileges,
  • InvalidValue for invalid entry renames, or
  • NotFound for operations on missing keys and values.

Structs§

CtxEntry
EntryOptions
Options for further customizing an entry

Enums§

ActivationType
Entry activation type
MenuPosition
Entry position in the context menu
Separator
Context menu separator

Functions§

toggle_classic_menu
Enable or disable the pre-Windows 11 context menu. You must restart explorer.exe for changes to take effect.