windows xp下如何获取主音量?
在Windows XP中,用Delphi,如何获取主音量?
我知道我可以使用 keybd_event(VK_VOLUME_UP, 1, 0, 0);
和 keybd_event(VK_VOLUME_DOWN, 1, 0, 0);
设置向上和向下发送击键,但我不知道如何获得体积的实际值。
In Windows XP, with Delphi, how to get the master volume?
I know I can set up and down sending key strokes with keybd_event(VK_VOLUME_UP, 1, 0, 0);
and keybd_event(VK_VOLUME_DOWN, 1, 0, 0);
, but I don't know how to get the actual value of the volume.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
下面是对这里找到的示例代码的一点修改(记入那里是托马斯·斯图茨)。此处的示例设置麦克风音量。我刚刚修改了组件类型 - 扬声器目标而不是麦克风源,并将
mixerSetControlDetails
替换为mixerGetControlDetails
,当然将 setter 变成了 getter。在我在这里测试的几个系统(XPSp3、XPSp2、W2K、98)上,它似乎有效。该函数的返回值是第一个(默认)混音器中的扬声器 - 值为 0-65535,按钮处理程序中的“ShowMessage”将其更改为百分比。但不要问我更多细节,我真的没有 Mixer api 的经验。相反,请参阅此处 fi,尽管这篇文章对我来说似乎确实很全面。The below is a little modification on the example code found here (credited there is Thomas Stutz). The example there sets the microphone volume. I just modified the component type - speaker destination instead of microphone source, and replaced
mixerSetControlDetails
withmixerGetControlDetails
, and turned the setter into a getter of course. On the few systems I tested here (XPSp3, XPSp2, W2K, 98), it seems to work. The return of the function is the speaker out of the first (default) mixer - a value of 0-65535, the 'ShowMessage' in the button handler changes it into a percentage. But don't ask me more details about it, I really have no experience with the mixer api. Instead refer here f.i., though old the article really seemed to be comprehensive to me.