从win32com获取stdout?

时间:2014-03-13 22:39:41

标签: python com lotus-notes

我正在尝试在莲花笔记上运行一些任务,但是当一个密码输入错误的条目时,它会阻止我死在我的轨道上。我在论坛周围搜索了一些线索,并在subprocess上阅读了但是还没能让它适用于我的案例?我怎么能这样做?

        try:
            print "session"+str(count)
            print count
            print task
            print "session["+str(count-1)+"].Initialize()"
            session[count-1].Initialize()
            reg = session[count-1].createRegistration()
            reg.switchToID(os.path.join(IDPATH,task[1]),task[2])

        except Exception as inst:
            print type(inst)
            print inst.args
            if type(inst) == TypeError:

                x, y ,u , i = inst.args
                #print 'x = ', x
                #print 'y = ', y
                #print 'u = ', u
                #print 'i = ', i
                logfile.write(task[0]+"\t"+task[1]+"\t"+task[2]+"\tNA\t"+u[2]+"\n")
                continue

我的id文件的密码匹配,一切都很好,一旦我用一个密码错误打了一个。

有密码

session[1].Initialize()
[0734:0007-2CF0] The ID file being used is: CN=Test User1/O=company
[0734:0007-2CF0] Enter password (press the Esc key to abort): 

我希望我能找到解决此错误的方法并发送esc继续下一步。

1 个答案:

答案 0 :(得分:1)

Lotus Notes通常不允许调用程序拦截此密码提示。这是针对正在尝试暴力攻击的脚本的安全对策。我知道解决此问题的唯一方法是使用Lotus Notes C API的Extension Manager功能,该功能包括构建DLL以处理EM_GETPASSWORD事件,并在notes.ini文件中插入一个条目,以便Notes将在运行时加载此DLL。