如何使用C#在Windows 7中调整主音量?
我一直在使用WINMM.DLL看到一个很好的实现在这里,但它与XP和与Windows 7不工作.
我需要控制特定应用程序产生的音频的音量.我已经找到了西蒙的简单和整齐了类似的问题的答案在这里,但它的显示名称,这对于一些应用列举了发生音频应用-是空的,因此不能用来检测的目标应用程序(容量是要受控).
因此,我正在寻找一个非常类似的解决方案,枚举音频播放应用程序的进程ID,通过它我可以检测应用程序的实际名称(进程名称和主窗口标题).
我正在使用VB.Net 2010,适用于Windows 7.
我是PowerShell的新手,最近一直在玩它.
我的问题是,如何使用PowerShell将特定应用程序静音?例如,如果我正在观看Chrome中的YouTube视频,我只能通过进入音量调音台并将Chrome从应用列表中静音来静音.有没有办法在PowerShell中执行此操作?
我发现了一篇关于如何将所有内容静音但不是特定应用程序的文章.
我找不到有关此主题的任何有用信息。如果有人能阐明这一点,我将不胜感激。
我几乎完成了为我们公司开发的商务电话应用程序;它将使用无线/有线耳机或特殊的 USB 电话类设备,通过这些设备播放和接收电话通信的音频。唯一的问题是,如果我们的员工在工作时有嘈杂的网站或 Pandora 播放器,我需要在他们通过电话与客户打交道时列举并静音所有其他潜在的噪音,甚至是系统噪音。
用户不会以管理员身份运行软件。
我已经将 PureBasic 用于大部分 UI 和网络。它对 Windows API 提供简单的原生支持。如果我需要使用 COM,我会使用 C++ (VS2010) 编写小型“插件”应用程序,这些应用程序通过重定向 stdin/out 使用 XML 与 PureBasic 应用程序进行通信。
我看到过与此主题类似的其他帖子,有人回复说这个想法是个坏主意……并且谈论每个人的应用程序中会发生什么,却因声音设备等而发生争执。但是,据我所知,这是我们问题的唯一可行解决方案。当我们的客户服务代表与我们的客户通电话时,我们不希望任何音频干扰。
我一直在查看 MSDN 上的混音器...() 函数,但我不太确定它们是否会起作用。因此,如果有人在这方面有经验,很高兴收到他们的来信!
我正在尝试编写一个C#代码,用于从访问声音输出的每个窗口应用程序输出当前音频输出级别(如Volume混音器中不断变化的绿色条所示).
该程序将每10毫秒检查一次,并输出如下:Windows Media Player:30,Mozilla Firefox:0,Adobe Flash Player:35(根据图)
我正在使用Windows 7,并在C#中尝试它(因为Java无法实现这一点).
我已经找到了为正在运行的应用程序获取和设置主音量(对于Windows Media Player显示65%的句柄栏)的方法,有没有办法获得绿色波动的水平数据?
谢谢!

我正在尝试获取有音频的进程列表。音量混合器中显示的进程。
目前我有:
var currentProcess = Process.GetProcesses();
foreach (Process Proc in currentProcess.Where(p => p.MainWindowHandle != IntPtr.Zero))
{
Console.WriteLine(Proc.ProcessName);
}
Run Code Online (Sandbox Code Playgroud)
哪个列表有窗口的应用程序,有没有办法进一步过滤它以仅显示音频进程?
谢谢你!