3 回答

TA貢獻1828條經(jīng)驗 獲得超3個贊
————————————————————
輸入引號:
————————————————————
Set ws=CreateObject("wscript.shell")
ws.Run "notepad.exe"
wscript.sleep 100
ws.SendKeys Chr(34)
這里chr(34)就是一個雙引號
————————————————————
后兩個問題:
————————————————————
其實直接發(fā)送的效果就和你要的是一樣的,你第二個問題是要得到一個“A”吧,而第三個問題中,直接ws.sendkeys "a3"即可,第二個問題直接ws.sendkeys "+a"即可
補充:
-------------------------------------------------
Set ws=CreateObject("wscript.shell")
ws.Run "notepad.exe"
wscript.sleep 100
ws.SendKeys "^+"
'此句執(zhí)行一次輸入法切換
'因為我這兒只設(shè)置了兩種輸入法,所以一次切換就到了英文
'你根據(jù)你的系統(tǒng)的情況多執(zhí)行幾次,就可以了
ws.SendKeys "msgbox " & Chr(34) & "123" & chr(34)
'此句輸入msgbox "123"到記事本上
ws.sendkeys "a"
ws.sendkeys "3a"

TA貢獻2039條經(jīng)驗 獲得超8個贊
這幾個問題我分開來回答吧:
前提:Set ws=CreateObject("wscript.shell")
--------------------------------------------------------
1. vbs中的sendkeys函數(shù)如何輸入引號?如果我要在記事本中輸入msgbox"123"該用什么代碼?
答:雙引號的ASCII碼是34,可用Chr(34)代替。
因此,在記事本中輸入msgbox"123",代碼可以這樣寫:
Set ws=CreateObject("wscript.shell")
ws.Run "notepad.exe"
wscript.sleep 200
ws.SendKeys "msgbox" & Chr(34) & "123" & Chr(34)
-----------------------------------------------------------
2. 如何先發(fā)送shift,再發(fā)送a,而不是shift+a? 如果我要把輸入法換成英文,再輸入a,該用什么代碼?
答:shift是特殊功能鍵之一,單獨使用沒有意義,一般用于組合鍵。也沒法通過sendkeys單獨發(fā)送shift。
通常在不同輸入語言間切換(例如中英文輸入語言切換,就是你的要求)用ctrl+shift,代碼如下:ws.sendkeys "^+"
這個取決于當(dāng)前輸入語言。假設(shè)只有中文、英文兩種輸入語言,如果當(dāng)前輸入語言是中文,那么就會切換到英文;反之亦然。
在相同輸入語言的不同輸入法間切換(如搜狗拼音、五筆字型等輸入法間切換)通常用ctrl+space,代碼如下:ws.sendkeys "^ "
-----------------------------------------------------------
3. 如何把a和3分開就是輸入一個3,再輸入一個a,而不是輸入3個a?如果我要輸入3a,該用什么代碼?
答:輸入3a,用 ws.sendkeys "3a"
輸入3個a,要使用大括號,用ws.sendkeys "{a 3}"

TA貢獻1854條經(jīng)驗 獲得超8個贊
SendKeys 的參數(shù)是String 也就是說 你可以用Chr() 函數(shù)生成需要的變量
如SendKeys Chr(&H22) 或 SendKeys Chr(34) '0x22 = 34 就是雙引號
對于此類操作( 鍵鼠相關(guān),Hook) 建議使用API mouse_event , keybd_event
添加回答
舉報