我想知道如何在C#中设置特定应用程序(任何正在运行的应用程序,而不仅仅是我的应用程序)的音量级别。
我知道我可能需要使用P/invoke,这很好。我只是不确定声音API的工作原理以及如何获取/设置特定应用程序的音量(例如Vista / 7中的音量混合器)。
我知道可以通过编程实现,因为nircmd有一个功能可以做到这一点。
任何帮助都将不胜感激,谢谢。
我想知道如何在C#中设置特定应用程序(任何正在运行的应用程序,而不仅仅是我的应用程序)的音量级别。
我知道我可能需要使用P/invoke,这很好。我只是不确定声音API的工作原理以及如何获取/设置特定应用程序的音量(例如Vista / 7中的音量混合器)。
我知道可以通过编程实现,因为nircmd有一个功能可以做到这一点。
任何帮助都将不胜感激,谢谢。
我认为你应该在这里查找。随着链接的跟踪,你会发现接口和 API 函数来操纵端点的音量。除了文档之外,微软还提供了一些 C++ 代码示例。正如你所说,使用平台调用在 .NET 中实现相同的功能是可行的。
我认为(也希望)你的请求在实际上是不可能的。允许应用程序设置自己的音量就像允许应用程序覆盖用户的通知图标设置一样。这些设置是用户设置,所以你不能规避它们。
想象一下,一个用户将扬声器的音量调得很高,但是将所有单独应用程序的音量都调低了。你的应用程序出现并且说“无论如何,我会将自己设置为最大音量”。你刚刚让用户失聪,或者至少让他躲在房间的角落里,吓得要死。