for i=1 to 1000
SendMessage pswHw, WM_SETTEXT, 0, ByVal Cstr(i)'向密码框输入数据
mouse_event MOUSEEVENTF_LEFTDOWN Or MOUSEEVENTF_LEFTUP, 0, 0, 0, 0
SendMessage msghw, WM_CLOSE, 0, 0  '如果弹出错误提示,关掉它
'如果没有错误提示,就根据API鼠标点击事件进入另一窗体了
next
现在的问题是,我设的密码就是666,但是有时候,能够找到密码进入另一窗体,有时候找到1000还没有进入窗体,要执行几次才能完成,我怀疑是因为从弹出错误提示到关掉msgbox需要一定时间,在这段时间循环仍在进行,也就是说,i=665的时候,应该弹出msgbox,并且关掉msgbox,但是在这段时间里,i已经=668了,所以出现上述问题,于是我加了sleep,这时候基本上每次都能找到密码了,可是我不知道sleep应该设多长时间才合适,所以我想问问,如何让关掉msgbox命令完成后再执行下一个i

解决方案 »

  1.   

    for i=1 to 1000
    SendMessage pswHw, WM_SETTEXT, 0, ByVal Cstr(i)'向密码框输入数据
    mouse_event MOUSEEVENTF_LEFTDOWN Or MOUSEEVENTF_LEFTUP, 0, 0, 0, 0
    在这里加上是否有msgbox窗体的判断
    if 有 then
    SendMessage msghw, WM_CLOSE, 0, 0  '如果弹出错误提示,关掉它
    '如果没有错误提示,就根据API鼠标点击事件进入另一窗体了
    end if
    next
      

  2.   

    每次循环时 都查下pswHw 即密码窗口是还在 如在 继续找密码  否则就是找到密码进入下一窗口了