提问人:Jomme 提问时间:11/7/2023 更新时间:11/7/2023 访问量:52
在 PowerShell 中检测系统范围的 mousedown-events
Detect systemwide mousedown-events in powershell
问:
如何在powershell中检测系统范围的mousedown事件?该脚本应 24/7 全天候运行
到目前为止,我得到了这个:
$key = 0x01
$Signature = @'
[DllImport("user32.dll", CharSet=CharSet.Auto, ExactSpelling=true)]
public static extern short GetAsyncKeyState(int virtualKeyCode);
'@
Add-Type -MemberDefinition $Signature -Name Keyboard -Namespace PsOneApi
$f=0
do
{ If( [bool]([PsOneApi.Keyboard]::GetAsyncKeyState($key) -eq -32767))
{
$f++
#Write-Host $f -ForegroundColor Green
}
Start-Sleep -Milliseconds 10
} while($true)
但不知道这是否是最好的方法,因为使用无限循环可能不是管理系统资源的最有效方法。是否有鼠标事件钩子的解决方案,这是否比无休止地轮询正确的键输入有利?
答: 暂无答案
评论
SetWindowsHookEx()。
但我不知道你是否可以在 PowerShell 中使用它。WH_MOUSE/_LL