项目上调用了一个第三方的dll,估计是C++开发的,里面某个方法会弹出一个对话框,输入密码,按Enter键提交,按ESC取消,由于特殊原因,现在不能让密码框弹出,或者弹出很短时间,现在想到两种办法解决
一,修改dll,把密码传入给对应方法
估计要逆向,修改,然后重新编译,这种方法可以治本,但是没有做过,而且周期不能确定,还未研究,还望大神指个教程
二、用win32 api模拟输入
已经可以用SetWindowText设置密码框的密码,但是用SendMessage模拟Enter始终不成功,下面是调用结果
SendMessage:WM_KEYDOWN,返回值:1,GetLastError:183
SendMessage:WM_KEYUP,返回值:0,GetLastError:183,
换了keybd_event,可以实现输入ENTER,但是由于未指定句柄,所以有一定概率会失败,同样求这种方式的解决方法
附上SPY++截图
一,修改dll,把密码传入给对应方法
估计要逆向,修改,然后重新编译,这种方法可以治本,但是没有做过,而且周期不能确定,还未研究,还望大神指个教程
二、用win32 api模拟输入
已经可以用SetWindowText设置密码框的密码,但是用SendMessage模拟Enter始终不成功,下面是调用结果
SendMessage:WM_KEYDOWN,返回值:1,GetLastError:183
SendMessage:WM_KEYUP,返回值:0,GetLastError:183,
换了keybd_event,可以实现输入ENTER,但是由于未指定句柄,所以有一定概率会失败,同样求这种方式的解决方法
附上SPY++截图