Session event handler through COM interface using pywin32

Advertisement

salam4ik
Joined:
Posts:
1
Location:
Kazakhstan

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:
# -*- 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')
its crash with error:
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
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.

Reply with quote

Advertisement

You can post new topics in this forum