2012-08-07 5 views
0

작은 플러그인을 작성하기 위해 win32com.client를 사용하고 있지만 속성을 설정하는 데 문제가 있습니다.Python의 win32com.client 함수 (propput 포함)

[id(0x00000021), propget, helpstring("property SystemChannel")] 
long SystemChannel(
       long lVEN, 
       long lDEV, 
       long lSVID, 
       long lSID); 

[id(0x00000021), propput, helpstring("property SystemChannel")] 
void SystemChannel(
       long lVEN, 
       long lDEV, 
       long lSVID, 
       long lSID, 
       [in] long rhs); 

내가 값, 다음 코드가 작동 유명한 선수 수에 문제가하지 않은 : 속성 또는 기능에 대한 정의는 이것이다

app = Dispatch("CmAVConfig.AudioConfig") 
self.speakerNumber = app.SystemChannel(self.glVid, self.glDid, self.glSvid, self.glsid) 

을하지만 같은 값을 설정할 수 없습니다 속성은, 나는 다음 지침을 사용하여 시도하고 난 아래의 오류를 얻을 : 당신이 그것을 쉬 라이브러리의 makepy를 실행 (또는 win32com.client.gencache.EnsureDispatch를 사용하는) 경우

app = Dispatch("CmAVConfig.AudioConfig")  
app.SystemChannel(self.glVid, self.glDid, self.glSvid, self.glsid, self.speakerNumber) 
ERROR: SystemChannel() takes at most 5 arguments (6 given) 

//this one is from a working example using javascript 
app.SystemChannel(self.glVid, self.glDid, self.glSvid, self.glsid) = self.speakerNumber 
ERROR: SyntaxError: ("can't assign to function call", ('ooo.py', 56, None, 'app.SystemChannel(self.glVid, self.glDid, self.glSvid, self.glsid) = self.speakerNumber\n')) 

답변

0

ould는 추가 arg를 취하는 SetSystemChannel 메서드를 만듭니다.

+0

감사합니다. win32com.client.gencache.EnsureDispatch와 SetSystemChannel이 완벽하게 작동합니다. – user1583210