Scripts/New-UDHotkeyMap.ps1
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 |
function New-UDHotkeyMap { [CmdletBinding()] param ( [Parameter( Mandatory = $true)] [string]$name, [Parameter( Mandatory = $true)] [string[]]$hotkey, [Parameter( Mandatory = $true)] [scriptblock]$action ) Begin { if ( $hotkey -eq "konami") { $hotkey = "up up down down left right left right b a s t a r t" } $Out = [Hashtable]@{ name = $name action = "" keyMap = $hotkey isEndpoint = $false } } Process { $actionInvoked = $action.Invoke() if ($actionInvoked.type -eq "Endpoint") { $Out.isEndpoint = $true $Out.action = $actionInvoked.id } else { $Out.action = $actionInvoked.javascript } #$out.action.$name = ('() => ' + $out.action.$name) } End { return $Out } } |