我想使用功能鍵制作宏來改進我的作業流程,但下面的代碼不起作用,我認為它很不言自明,如果我按 X 鍵運行代碼,則會發送不同的文本。
$wshell = New-Object -ComObject wscript.shell;
# choose the key you are after
$key = [System.Windows.Input.Key]::LeftCtrl
$isCtrl = [System.Windows.Input.Keyboard]::IsKeyDown($key)
while ($true)
{
if ($isCtrl)
{
$wshell.SendKeys('Thank you for using the service.')
}
}
上面的代碼不起作用。但是,如果我只使用下面的代碼,它確實會按預期發送字串。
$wshell = New-Object -ComObject wscript.shell;
sleep 1
$wshell.SendKeys('Digital service desk')
uj5u.com熱心網友回復:
您一直在循??環內檢查相同的值,因為$isCtrl進入回圈后從未分配過。
改成:
while ($true)
{
$isCtrl = [System.Windows.Input.Keyboard]::IsKeyDown($key)
if ($isCtrl)
{
$wshell.SendKeys('Thank you for using the service.')
}
}
這樣你每次都重新檢查控制是否被按下。
uj5u.com熱心網友回復:
正如Mathias R. Jessen所說,我沒有在回圈內更新 $isCtrl 的值。如果有人想使用它,我現在將發布代碼。
$wshell = New-Object -ComObject wscript.shell;
Add-Type -AssemblyName WindowsBase
Add-Type -AssemblyName PresentationCore
while ($true)
{
if ([System.Windows.Input.Keyboard]::IsKeyDown([System.Windows.Input.Key]::F2))
{
sleep 1
$wshell.SendKeys('Message after pressing F2')
} elseif ([System.Windows.Input.Keyboard]::IsKeyDown([System.Windows.Input.Key]::F4)){
sleep 1
$wshell.SendKeys('Message after pressing F4')
}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/405496.html
標籤:
