- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我正在尝试使用通过 COM 公开的 Windows 可移植设备 API 从可移植设备(iPhone、Android)导入照片。添加 PortableDeviceApiLib.dll 的引用后,我看到一些使用 C# 执行的代码,如下所示:
PortableDeviceApiLib.PortableDeviceManagerClass devMgr = new PortableDeviceApiLib.PortableDeviceManagerClass();
在 python 中执行相同操作的方法是什么?
最佳答案
您应该能够通过执行以下操作:
from comtypes.client import CreateObject
CreateObject("{0af10cec-2ecd-4b92-9581-34f6ae0637f3}")
但是,您应该将其 (QueryInterface
) 转换为有用的内容:
import os
from comtypes.client import GetModule
GetModule(os.getenv("WINDIR") + "\\system32\\PortableDeviceApi.dll")
from comtypes.gen.PortableDeviceApiLib import *
CreateObject(PortableManager)
CreateObject
将检查第一个参数以查看它是否是具有 _reg_clsid_
属性、comtypes.GUID
实例、CLSID 的对象字符串(即以 {
开头),最后尝试查找 CLSID(假设它是 ProgID)。
它还将检查 _com_interfaces_
属性的第一个参数(该属性应该是接口(interface)列表),并获取第一个参数作为 QueryInterface
的默认接口(interface)例如,如果未提供 interface
参数。
关于python - 如何在 python 中创建 IPortableDeviceManager 的实例?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21122468/
我正在尝试使用 CoCreateInstance(..) 方法创建 IPortableDeviceManager 类的实例但我找不到类的 CLSID a.k.a GUID。 我深入研究 Windows
我正在尝试使用通过 COM 公开的 Windows 可移植设备 API 从可移植设备(iPhone、Android)导入照片。添加 PortableDeviceApiLib.dll 的引用后,我看到一
我是一名优秀的程序员,十分优秀!