2024-09-30 12:12:30 发布
网友
我正在尝试使用python连接到COM对象。在
更具体地说,我使用ASCOM标准驱动程序连接到maxdomeii,不知道如何引用这个驱动程序。在
在这个link中,作者使用了“塞莱斯顿望远镜“作为win32的参数com.client.Dispatch公司实例化。在
我的问题是如何找到这根绳子。我知道它与安装在计算机上的驱动程序有关,但我不知道如何定位特定的字符串。有没有办法使用win32com.客户端列出COM对象?在
顺便说一下,在Windows7Pro上操作,64位。在
谢谢
这个“塞莱斯顿望远镜字符串被称为ProgID(你可以很容易地搜索这个术语)。在
对于整个机器,它们位于HKEY_LOCAL_MACHINE\SOFTWARE\Classes注册表项下,对于当前正在运行的用户,它们位于HKEY_CLASSES_ROOT中。在
HKEY_LOCAL_MACHINE\SOFTWARE\Classes
HKEY_CLASSES_ROOT
当COM创建组件的实例时,它将使用当前用户的注册表视图。大部分密钥在HKLM中,但在HKCR中可能会有一些本地覆盖。在
我认为不可能直接从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对象名称的列表,语法通常是主程序.子功能. 在
我机器上的一些输出:
{a1}
我希望这有帮助!在
这个“塞莱斯顿望远镜字符串被称为ProgID(你可以很容易地搜索这个术语)。在
对于整个机器,它们位于
HKEY_LOCAL_MACHINE\SOFTWARE\Classes
注册表项下,对于当前正在运行的用户,它们位于HKEY_CLASSES_ROOT
中。在当COM创建组件的实例时,它将使用当前用户的注册表视图。大部分密钥在HKLM中,但在HKCR中可能会有一些本地覆盖。在
我认为不可能直接从python获取COM对象的列表,但是您可以在Powershell中运行以下代码(实际上是从python内部运行它):
这将输出系统中按字母顺序排序的所有有效COM对象名称的列表,语法通常是主程序.子功能. 在
我机器上的一些输出:
{a1}
我希望这有帮助!在
相关问题 更多 >
编程相关推荐