国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > VBScript > 正文

用VBS實現一個小鍵盤動作CTRL+V粘貼操作與思路分析

2020-06-26 18:23:11
字體:
來源:轉載
供稿:網友
我想實現當有跳出窗口"請輸入"時的1.8秒后就發送一次 CTRL + V,把本來已經復制到剪切版中的文字自動粘貼過去呢
 
提示: 
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 輸入框中.問題解決 

總結:在遇到一些問題的時候,不能鉆牛角尖,換個思路,其實解決起來并不難!

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 馆陶县| 蒙山县| 荥经县| 中牟县| 固原市| 青岛市| 和硕县| 三明市| 吉隆县| 英吉沙县| 长葛市| 通江县| 平遥县| 阿拉善盟| 嫩江县| 迁西县| 鄯善县| 孝昌县| 襄城县| 军事| 仁化县| 赞皇县| 房产| 攀枝花市| 昂仁县| 金坛市| 长顺县| 潜山县| 班戈县| 买车| 阿城市| 潼南县| 囊谦县| 河池市| 四川省| 惠州市| 威宁| 塘沽区| 柳州市| 米脂县| 屯门区|