使用命令行批处理文件/RDP 同步 Caps Lock 切换 Caps Lock

使用命令行批处理文件/RDP 同步 Caps Lock 切换 Caps Lock

当我使用 RDP 在家工作时,电子邮件自动更正不断使我的 Caps 锁定不同步,我一直在寻找在打开新电子邮件或 PDF 表单时重新同步和预设 Caps 锁定状态的方法。要打开 PDF 表单并打开 Caps 锁定并重新同步,我发现以下代码有效,如果 Caps 锁定已打开,则关闭 Caps 锁定,然后在打开 PDF 文件之前将其重新打开。但是我想简化这个过程以加快进程。有没有更好的方法来编写这个,也许将前两行合并到一行?

有什么建议吗?谢谢。

@echo off
start /b /wait powershell.exe -nologo -WindowStyle Hidden -sta -command "IF ([console]::CapsLock -eq 'True'){$wsh = New-Object -ComObject WScript.Shell;$wsh.SendKeys('{CAPSLOCK}')}" 
start /b /wait powershell.exe -nologo -WindowStyle Hidden -sta -command "$wsh = New-Object -ComObject WScript.Shell;$wsh.SendKeys('{CAPSLOCK}')"
start "" /wait /D"C:\Users\Claire\Desktop" "pdf-form.pdf"
exit

答案1

/B 开关在这里没有实际好处,如果目的只是确保大写锁定处于打开状态,则只需要一行即可启用它,使用 ne 表示不等于真。

    @start /wait powershell.exe -nologo -WindowStyle Hidden -sta -command "IF ([console]::CapsLock -ne 'True'){$wsh = New-Object -ComObject WScript.Shell;$wsh.SendKeys('{CAPSLOCK}')}"
    @start "" /wait /D"C:\Users\Claire\Desktop" "pdf-form.pdf"
    @exit /B 0

相关内容