2014-01-14 2 views
1

COM을 통해 노출 된 Windows 휴대용 장치 API를 사용하여 휴대용 장치 (iphone, Android)에서 사진을 가져 오려고합니다.어떻게 Python에서 IPortableDeviceManager의 인스턴스를 만들 수 있습니까?

PortableDeviceApiLib.PortableDeviceManagerClass devMgr = new PortableDeviceApiLib.PortableDeviceManagerClass(); 

같은 내부 파이썬을 할 수있는 방법이 될 것입니다 무엇 : 나는 PortableDeviceApiLib.dll의 참조를 추가 한 후 다음과 같이 C#을 사용했던 몇 가지 코드를 보았다?

답변

1

당신은 다음을 수행하여 할 수 있어야한다 :

import os 
from comtypes.client import GetModule 
GetModule(os.getenv("WINDIR") + "\\system32\\PortableDeviceApi.dll") 
from comtypes.gen.PortableDeviceApiLib import * 
CreateObject(PortableManager) 

CreateObject가 있는지 확인하는 첫 번째 인수를 검사한다 : 그러나

from comtypes.client import CreateObject 
CreateObject("{0af10cec-2ecd-4b92-9581-34f6ae0637f3}") 

을, 당신은 뭔가 유용한로 (QueryInterface)를 주조한다 _reg_clsid_ 속성, comtypes.GUID 인스턴스, CLSID 문자열 (즉, {으로 시작하는)이있는 객체이며 마지막으로 ProgID라고 가정하고 CLSID를 조회하려고 시도합니다.

는 또한 인터페이스 목록 있어야하는 _com_interfaces_ 특성의 첫 번째 인자를 검사하고, interface 인수가 제공되지 않는 경우에 대한 QueryInterface의 기본 인터페이스로서 처음 페치한다.

관련 문제