【发布时间】:2021-09-15 05:29:32
【问题描述】:
我正在寻找一种方法,能够在不使用音量混合器但使用 C/C++ 代码的情况下控制不同程序的音量。我知道windows.h 库应该可以做到。但它很大,我什至不知道从哪里开始。
我已经发现 nircmd 完全符合我的需要:
nircmd setappvolume chrome.exe 0.15
虽然我可以使用该命令,但我想编写自己的命令并使用硬件设备来控制这些卷。
如果有人有一些链接或提示可以帮助我入门,我将不胜感激!
编辑:
我现在在 C 语言中使用了 system() 和 nircmd,效果很好。这段代码只是使用一个 sinus 将音量从 50% 变为 100% 和 0%。
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int main() {
char command[100];
char appName[] = "chrome.exe";
int i = 0;
while(1){
i++;
sprintf(command, "nircmd setappvolume %s %f", appName, sin(i/10.0)/2+0.5);
printf("%d %% \n", i);
system(command);
}
}
【问题讨论】:
-
不幸的是,没有公共 API 可以做到这一点。您唯一可以设置的是主音量。
-
是的,这正是我在研究中发现的。但是发现 nircmd 有效,我认为它应该是可能的。
-
是的,他们一定做了一些逆向工程。也许您可以在注册表中设置一些键 - 毕竟,这些音量设置必须存储在某个地方。
-
谢天谢地 nircmd 有一个相当开放的许可证。所以我只会将它用于我的程序。