pywin32
クライアント側 COM のドキュメントでは、COM オブジェクトをインスタンス化する基本的な方法を示しています。
obj = win32com.client.Dispatch("<ProgID>")
PersistentZoneIdentifier
ファイルがダウンロードされた場所を指定するためにゾーン識別子を操作するのと同じように作業しようとしています - 古い新しいもの - MSDNブログ。HKEY_CLASSES_ROOT\CLSID\{0968e258-16c7-4dba-aa86-462dd61e31a3}
のレジストリが示すように、そのクラスには対応するProgID
.
インスタンス化するものと、そこから明らかにクエリするものpythoncom.CoCreateInstance
を受け入れる基本的な関数があることがわかります。CLSID
IID
しかし、人間が読める名前ではなく、理解できない GUID を使用する必要があるため、これは不便です。
質問は:
pywin32
前述の GUID を名前で検索する /underlying WinAPI に標準的な方法はありますか? (手動でレジストリを検索することはお勧めしません)- または、そのオブジェクトを名前でインスタンス化する他の方法はありますか?
私が試して失敗したこと: win32com.client.IDispatch(<class/interface name>)
, pythoncom.IID(<class/interface name>)
. もちろん、Net、MSDN、および PyWin32 のドキュメントも調べました。