2016-06-23 21 views
0

webdavサーバーにファイルがアップロードされている間にファイル転送の進行状況情報を取得します。私は、Sessionオブジェクトの設定ハンドラのWITHEVENTSを使用しようが、それはエラーで停止:私はWinScp_ISessionEventsクラスで間違った関数名を持つエラーメッセージに、私がしているよるとpywin32を使用してCOMインターフェイス経由のWinSCPセッションイベントハンドラ

# -*- coding: utf-8 
import win32com.client as win32 

class WinScp_ISessionEvents: 
    def OnFileTransferProgress(self, e): 
     print(e.FileProgress) 

if __name__ == "__main__": 
    wcpSession = win32.dynamic.Dispatch('WinSCP.Session') 
    winscp_session_option = win32.dynamic.Dispatch('WinSCP.SessionOptions') 
    winscp_session_option.Protocol = 3 
    winscp_session_option.HostName = "webdav.yandex.ru/" 
    winscp_session_option.UserName = "user" 
    winscp_session_option.Password = "password" 
    win32.WithEvents(wcpSession, WinScp_ISessionEvents) 
    wcpSession.open(winscp_session_option) 
    wcpSession.PutFiles('E:\Exchange\File.xls', '/File.xls') 

C:\Miniconda3\python.exe E:/backup_1c/winscp.py 
Traceback (most recent call last): 
    File "E:/backup_1c/winscp.py", line 16, in <module> 
    wcpSession.open(winscp_session_option) 
    File "<COMObject WinSCP.Session>", line 2, in open 
pywintypes.com_error: (-2147352567, 'Error.', (0, 'mscorlib', 'Member group not found. (Exception HRESULT: 0x80020003 (DISP_E_MEMBERNOTFOUND))', None, 0, -2147352573), None) 

Process finished with exit code 1 

スクリプトコードがありますFileTransferProgress、Session_FileTransferProgress、wcpSession_FileTransferProgress、wcpSession_OnFileTransferProgressなど、さまざまな名前を試してみました。

答えて

0

コールスタックではwcpSession.openで問題が示され、win32.WithEventsでは発生しません。

は、メソッドが.Open、ない.openで問題ありませんか?

+0

私はオープンメソッドとオープンメソッドの両方を使用していますが、変更はありません。 文字列win32.WithEvents(wcpSession、WinScp_ISessionEvents)にコメントしてから、スクリプトが正しく動作し、終了コード0で終了します。 – user2355826

関連する問題