vbs利用sendkeys輸入中文字元的方法
2023年09月28日
首先我們看乙個輸入字母的例子:
複製** **如下:
set s = wscript.createobject("wscript.shell")
code="biweilun"
wscript.sleep 1000
s.sendkeys code
wscript.quit
這段vbs會sendkeys方法的朋友就知道,作用是開啟乙個記事本,然後把"biweilun"這串字元輸入進去,當然,你可以把code引數換成chr(97),那麼你會發現自動輸入到記事本裡面的是乙個"a"字元。那麼,你把code引數的值換成乙個chr(乙個漢字的ascii碼)行不行呢?可以肯定的告訴你,不行。
我們通過呼叫乙個ie的物件,這樣可以使用其內建的剪貼簿元素,將"畢偉倫"這個字串放進了剪貼簿,然後通過wsh物件來sendkey "^v"貼上剪貼簿內容,這樣就能實現vbs自動輸入中文字元了。
但是呢,這個方法有個缺憾,就是它會開啟乙個ie的視窗,不夠完美,雖然不影響輸入字元。所以我在探索一種完美的方案,得知乙個物件「htmlfile」,很可惜的是該物件只能讀取剪貼簿,卻不能寫剪貼簿。我們來看一段**,怎麼彈出你的剪貼簿內容,你要先複製一段字元:
set biweilun=createobject("htmlfile").parentwindow.clipboarddata
wscript.echo biweilun.getdata("text")
執行這個**,你會發現你剪貼簿的東西彈出來了。在ie物件裡,有setdata函式來寫剪貼簿,getdata函式來讀剪貼簿,在htmlfile物件裡呢,也有這兩個函式的。你會想到是不是可以用htmlfile物件的setdata先來向剪貼簿中寫入中文字元,然後再sendkeys呢?這樣豈不是很完美,既解決了中文輸入問題,又沒有網頁彈出。呵呵,想法是好的,我也這麼想過,可是不行!!
htmlfile物件在使用中只能getdata來獲取剪貼簿,對於setdata函式系統卻不給它寫的許可權!呵呵,鬱悶吧?但是htmlfile物件中的setdata函式確實是存在的,只是無法使用而已。不信的話讀者可以自己嘗試如下**,指令碼不會報錯的,如果沒有這個函式的話,wscript會報錯的:
複製** **如下:
set biweilun=createobject("htmlfile").parentwindow.clipboarddata
biweilun.setdata "text","畢偉倫"
wscript.echo biweilun.getdata("text")
在vbs牛人umu的空間上看到,據他講有這麼一條dos命令,可以來寫字串到剪貼簿中:
echo biweilun| clip.exe 就是用dos命令把biweilun這串字元寫入剪貼簿了。經本人測試,該命令不成立,umu的思路是這樣來默默地後台寫剪貼簿:
objwsh.run "cmd.exe /c echo " & szbuf & "| clip.exe", vbhide
如果這個dos命令能真的實現就好了,那麼sendkeys中文字元就太完美了。我到網上翻了很久,沒有找到任何關於他所謂的clip.exe的資料和引數等等東東。
vbs利用sendkeys輸入中文字元,還是有那麼一點遺憾~~~
7月28日補充內容如下:
經過umu大哥的提點,原來上文提到的clip.exe只在win2003下才有,winxp是沒有的,那怪我不能實現後台windows寫剪貼簿的dos命令
**如下:
複製** **如下:
set wshobj=wscript.createobject("wscript.shell")
code="你想輸入的中文"
wshobj.run "cmd.exe /c echo " & code & "| clip.exe", vbhide
wscript.sleep 1000
wshobj.sendkeys "^v"
wscript.quit
以上**經本人測試完美有效,結貼~~~
VBS利用SendKeys輸入中文字元的方法
首先我們看乙個輸入字母的例子 複製 如下 set s wscript.createobject wscript.shell app s.run c windows notepad.exe code biweilun wscripwww.cppcns.comt.sleep 1000 s.appacti...
利用vbs傳送郵箱
namespace set emailobj createobject cdo.message emailobj.from xx 163.com 發件人,需修改 emailobj.to x qq.com 收件人,需修改 emailobj.subject 請假打卡 郵件主題 emailobj.html...
記錄一下send keys輸入中文亂碼問題
我的解決方案是 send keys 美妝 亂碼 a 美妝 send keys a 解決 為啥 頁不知道,但是網上說的新增resetkeyboard ture 和 unicodekeyboard ture 並不能解決亂碼的問題,只能解決可以輸入正文的問題,但是會頁會偶爾亂碼,加了個變數,試了很多次沒有...