![使用 Nircmd 在 cmd 中聚焦窗口](https://linux22.com/image/1569740/%E4%BD%BF%E7%94%A8%20Nircmd%20%E5%9C%A8%20cmd%20%E4%B8%AD%E8%81%9A%E7%84%A6%E7%AA%97%E5%8F%A3.png)
第一次发帖。我一直在尝试创建可以单独调整单个应用程序声音的宏。发现 Nircmd 有我想要的命令,例如,如果我想将 Example.exe 的音量增加 20%,我可以使用一个批处理文件,内容如下:
Nircmd.exe changeappvolume Example.exe .2
我已经测试过它,它非常适合更改我知道我将在后台使用的应用程序,但是我还想更改我打开的窗口的音量,因为我的重点应用程序通常是游戏或各种其他应用程序。我的计划是将这些批处理文件绑定到一组在后台运行它们的热键,但我不想为每个主要程序编写一个宏集。
理论上,Nircmd.exe 应该能够使用以下命令更改“焦点窗口”的音量:
Nircmd.exe changeappvolume focused .2
然而,我无法弄清楚如何聚焦我正在使用的窗口。
答案1
我遇到了同样的问题。我注意到,如果您使用 Windows 快捷键,所有窗口都会失去焦点。假设 NirCmd 正在成为前台应用程序,从而阻止它静音正确的进程。但是,当然,如果您不这样做,您只会静音 explorer.exe 或 cmd.exe 或无论您如何运行它。不幸的是,我发现最好的解决方法是将快捷方式更改为:
"nircmd.exe" cmdwait 1000 changeappvolume focused .2
然后快速重新单击要静音的进程。cmdwait 以毫秒为单位,因此这将等待一秒钟,然后再执行 muteappvolume 命令。这是一个相当尴尬的解决方案。
更新: 我想到了一个更自动化的方法。首先创建一个包含以下内容的 .txt 文件:
sendmouse left click
wait 20
changeappvolume focused .2
然后将快捷方式更改为:
"nircmd.exe" script <path-to-text-file>/<text-file>.txt
现在您只需确保鼠标光标位于要更改音量的应用程序上。