使用全局热键调用 powershell 函数

Posted

技术标签:

【中文标题】使用全局热键调用 powershell 函数【英文标题】:Calling a powershell function with a global hotkey 【发布时间】:2014-06-15 02:17:33 【问题描述】:

我想通过触发由我的脚本注册和取消注册的全局热键(组合 Ctrl+Shift+F12)来使用我的 Powershell 脚本中的函数。我需要访问由我的脚本创建的 .NET 对象。在伪代码中:

$object_i_need = New-Object SomeClass
register_hotkey "Ctrl+Shift+F12" hotkey_func

function hotkey_func  do_something_with $object_i_need 

wait_for_keypress
unregister_hotkey

这有可能吗?

【问题讨论】:

【参考方案1】:

如果 .Net 对象支持Add_Keydown(如 System.Windows.Forms.Form),您可以执行以下操作...

$objWhatever.KeyPreview = $True
$objWhatever.Add_KeyDown(
     if ($_.KeyCode -eq "Enter")
         hotkey_func
       
)

【讨论】:

不幸的是,它没有(它是一个 ProcessInfo 对象)。

以上是关于使用全局热键调用 powershell 函数的主要内容,如果未能解决你的问题,请参考以下文章

禁用 全局快捷键

VC 中如何实现全局热键,不要求用组合键,如单键F2执行关机?

具有平台 API 的 C++ 全局热键

使用 X11/Xlib 的全局热键

在 golang 中实现全局热键?

全局拦截热键,但保持原始行为