Session event handler through COM interface using pywin32
I try to use pywin32 to work with webdav server using COM interface. All work good, but now I want to see file transfer progress and try to handle FileTransferProgress event of session object. But with no luck.
Simple python 3.5 script:
its crash with error:
According to error message the problem is wrong function name in WinScp_ISessionEvents class. I have tried a lot of name variants such as OnFileTransferProgress, FileTransferProgress, Session_OnFileTransferProgress, Session_FileTransferProgress, etc. But error still raised.
Simple python 3.5 script:
# -*- 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