繁体   English   中英

win32com.client.Dispatch类标签

[英]win32com.client.Dispatch Class Label

我正在尝试使用python连接到COM对象。

更具体地说,我使用ASCOM标准驱动程序连接到MaxDome II,但不知道如何引用该驱动程序。

在此链接中 ,作者使用“ Celestron.Telescope”作为win32com.client.Dispatch实例化的参数。

我的问题是如何找到此字符串。 我知道它与计算机上安装的已安装驱动程序有关,但是我不知道如何找到特定的字符串。 有没有一种方法可以使用win32com.client列出COM对象?

顺便说一句,在Windows 7专业版64位操作系统上运行。

谢谢

我认为不可能直接从python获取COM对象的列表,但是您可以在Powershell中运行以下代码(实际上是从python内部运行它):

Get-ChildItem HKLM:\Software\Classes -ErrorAction SilentlyContinue | Where-Object {
   $_.PSChildName -match '^\w+\.\w+$' -and (Test-Path -Path "$($_.PSPath)\CLSID")
} | Select-Object -ExpandProperty PSChildName

这将输出系统上按字母顺序排序的COM对象的所有有效名称的列表,语法通常为MainProgram.SubFunction。

我的机器上的一些输出:

Powershell中的命令输出片段

我希望这有帮助!

此“ Celestron.Telescope”字符串称为ProgID (您可以很容易地在此术语上使用google进行搜索)。

它们位于整个计算机的HKEY_LOCAL_MACHINE\\SOFTWARE\\Classes注册表项下,而当前运行的用户位于HKEY_CLASSES_ROOT中。

COM创建组件的实例时,它将使用注册表的当前用户视图。 大多数密钥位于HKLM中,但HKCR中可以有一些本地替代。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM