提示:
1,是每次有跳出窗口時的1.8秒后都要有此動作,并且是只發送了一次該動作,發送完后等待下次的窗口跳出再循環.
2,每次循環中都只是發送了一次CTRL + V后就停,而不是一直發送
看到問題,立即著手編寫測試代碼,這時候問題出現:
彈出 inputbox 窗口后,VBS處于暫停狀態,等待用戶輸入,點擊確定or取消,
所以在它后面的 Wshshell.Sendkeys "^v" 將無法執行,
如果前面彈出 inputbox 窗口后點擊確定 or 取消的話,那么再執行 ctrl+v 就不能把剪切板中的內容粘貼到inputbox 窗口當中,如果把Wshshell.Sendkeys "^v" 放到 inputbox 之前的話,也不行,因為 inputbox 還沒彈出來,ctrl+v也無法實現粘貼內容到 inputbox,
轉換一下思路,我們把inputbox 和 sendkey寫成兩個文件,這樣它們互相就不會產生沖突,最終解決代碼如下:
代碼如下:
Set WshShell=WScript.CreateObject("WScript.Shell")
WScript.Sleep 2000
Set fso=wscript.createobject("scripting.filesystemobject")
set f=fso.opentextfile("sendkey.vbs",2,true)
f.Write("Set WshShell=WScript.CreateObject(" & Chr(34) & "WScript.Shell" & chr(34) & ")")
f.WriteBlankLines(1)
f.Write("WScript.Sleep 1800")
f.WriteBlankLines(1)
f.Write("Wshshell.appactivate " & chr(34) & "提示" & chr(34))
f.WriteBlankLines(1)
f.Write("Wshshell.Sendkeys " & chr(34) & "^v" & chr(34))
f.WriteBlankLines(1)
f.Close
Wshshell.Run ("sendkey.vbs")
InputBox "請輸入","提示",""
fso.DeleteFile ("sendkey.vbs")
代碼先寫 sendkey.vbs 并執行,執行過程中會等待1.8秒發送 ctrl+v ,接著彈出 inputbox,這時候inputbox彈出來了,sendkey.vbs在等待1.8秒后也執行ctrl+v把內容粘貼到了inputbox 輸入框中.問題解決
總結:在遇到一些問題的時候,不能鉆牛角尖,換個思路,其實解決起來并不難!