Comment on page
Global Hotkeys
Global hotkeys for invoking PowerShell with keystrokes.
Global Hotkeys are only supported on Windows.
Global hotkeys allow you to assign hotkeys to PowerShell script blocks. You have access to the current foreground window and process so you can customize your hotkey actions based on what window is open.
Hotkeys are associated with the current PowerShell window. If you close the window, the hotkeys won't work. You can use the hotkeys anywhere on your desktop as long as PowerShell is open.
You can define hot keys using
Set-Hotkey
. This cmdlet allows you to specify the action to execute and the modifiers and key to invoke the action.In the example, pressing
Ctrl+B
will open notepad. Set-Hotkey -Action { Start-Process Notepad } -ModifierKeys Ctrl -Key B
You can pass variables by using the
$ArgumentList
parameter. These variables will appear in $args
variable after the built in foreground and process ID variables. $Process = "Notepad"
Set-Hotkey -Action { Start-Process $args[2] } -ArgumentList $Process -ModifierKeys Ctrl -Key B
You can access the foreground window title and process information by using the
$args
variable. The first argument it the foreground window title and the second argument is the process ID.This example will write the foreground window title to the console.
Set-Hotkey -Action { Write-Host $args[0] } -ModifierKeys Ctrl -Key B
This example will open another instance of the selected process. The second argument is a process ID.
Set-Hotkey -Action { Start-Process (Get-Process -Id $args[1]).Path } -ModifierKeys Ctrl -Key B
You can use
Get-Hotkey
to retrieve hotkeys that have been defined. PS C:\Users\adamr> Get-Hotkey
Action ModifierKeys Keys
------ ------------ ----
Start-Process $args[1].Path Ctrl B
You can remove hotkeys using
Remove-Hotkey
. Get-Hotkey | Remove-Hotkey
Last modified 3yr ago