IDispatch 인터페이스 만 노출하고 IDL 파일이나 형식 라이브러리가없는 COM 서버를 Python과 함께 사용하려고합니다. 나는 다양한 방법에 대한 문서화와 그것들을 사용하는 방법을 가지고있다.형식 라이브러리가없는 파이썬 IDispatch 클라이언트
형식 정보를 사용할 수 없을 때 win32com 패키지를 사용하려고하면 실패합니다. 모든 특성 액세스가 속성 가져 오기 또는 설정이며, 메서드 호출이 아닌 것으로 가정하는 것으로 대체됩니다. 나는 다음 작업을 수행 할 때입니다
는 :
import win32com.client
c = win32com.client.GetActiveObject(server_progid)
c.someServerMethod(arg1, arg2)
win32com는 서버에 속성을 someServerMethod 얻기 위해 시도 ARG1을 무시하고, 완전히 ARG2. Python은 arg1, arg2가없는 self .__ getattr__을 호출하기 때문에 코드를 파고들 것 같습니다.
나는이 해결하는 방법을 찾고 있어요 :
- 일부 구문은 실제로 메소드를 호출하고있어 win32com 얘기를;
- 실제로이 동작을 구현하는 다른 파이썬 COM 클라이언트.
- '수동으로 문서를 유형 라이브러리로 변환'을 제외한 다른 제안 사항.
감사합니다.
코드에'f'의 정의가 부족한 것 같습니다. 연결된 레시피에서는'f = getattr (target, aname)'입니다. –