- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
对于在 Windows SDK 文档中命名的给定 COM 类(例如 >IChannelAudioVolume
)?
我正在编写一个 Python 脚本,该脚本为正在播放音频的各个应用程序设置 Windows 音频混合器设置 (audio sessions)。我想设置声道音量,平移音频,这是 IChannelAudioVolume 公开的内置 Windows 功能API。
我看到 pycaw
通过 comtypes
使用许多基于 COM 的 Windows API,从为 comtypes 提供 GUID、父接口(interface)和方法详细信息的声明开始
:
from ctypes import HRESULT, POINTER, c_uint32, c_float
from comtypes import IUnknown, GUID, COMMETHOD
class ISimpleAudioVolume(IUnknown):
_iid_ = GUID('{87CE5498-68D6-44E5-9215-6DA47EF883D8}')
_methods_ = (
# HRESULT SetMasterVolume(
# [in] float fLevel,
# [in] LPCGUID EventContext);
COMMETHOD([], HRESULT, 'SetMasterVolume',
(['in'], c_float, 'fLevel'),
(['in'], POINTER(GUID), 'EventContext')), # ...
编写此类代码的人在哪里可以找到与特定接口(interface)名称相对应的这些 GUID(例如 '{87CE5498-68D6-44E5-9215-6DA47EF883D8}'
)?它们不在各个接口(interface)的主要文档中。他们是否在某处正式记录?或者,在 Windows 中,我可以运行什么来从接口(interface)名称(例如 ISimpleAudioVolume
)中查找它们?
与此同时,我只是在谷歌上搜索我正在寻找的界面的名称,以及没有 {}
的主题相似界面的 GUID 值,并希望遇到其他有它们的代码示例。这对我的直接目的来说已经足够好了,但也有问题,而且我不清楚我通过这种方式找到的 GUID 是否打算用作公共(public) API。
最佳答案
此在线工具 MagnumDb作为“魔数(Magic Number)数据库”(免责声明:我写的)是一个完全免费的搜索引擎,包含 99% 的 Windows SDK 常量和超过 70K 的 guid(IID、CLSID 等)。
可以按名称查询,也可以按值查询,使用通配符等,例如:http://www.magnumdb.com/search?q=IChannelAudioVolume
将为您提供此信息(名称、类型、值、SDK 头文件位置):
IID_IChannelAudioVolume Guid 1c158861-b533-4b30-b1cf-e853e51c59b8 %ProgramFiles(x86)%\Windows Kits\10\Include\10.0.17134.0\um\Audioclient.h(1942,0)
关于python - 如何从 Windows API 文档中使用的接口(interface)名称获取 COM 类的 GUID?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46497022/
我是一名优秀的程序员,十分优秀!