2009年6月13日 星期六

VB6中SendKeys的基本應用

VB6中SendKeys的基本應用

SendKeys
類比鍵盤操作,將一個或多個按鍵指令發送到指定Windows視窗來控制應用程式運行,
其使用格式為:object.SendKeys string
"object":表示WshShell物件
"string":表示要發送的按鍵指令字串,需要放在英文雙引號中。
1.基本鍵
一般來說,要發送的按鍵指令都可以直接用該按鍵字元本身來表示,例如要發送字母"x",使用"WshShell.SendKeys "x""即可。
當然,也可直接發送多個按鍵指令,只需要將按鍵字元按順序排列在一起即可,例如,要發送按鍵"happy",可以使用
"WshShell.SendKeys "happy""。
2.特殊功能鍵
對於需要與ShiftCtrlAlt三個控制鍵組合的按鍵,SendKeys使用特殊字元來表示:
Shift---------WshShell.SendKeys "+"
Ctrl---------WshShell.SendKeys "^"
Alt---------WshShell.SendKeys "%"
由於"+"、"^"這些字元用來表示特殊的控制按鍵了,如何表示這些按鍵呢?
只要用大括弧括住這些字元即可。例如:
要發送加號"+",可使用"WshShell.SendKeys "{+}""
另外對於一些不會生成字元的控制功能按鍵,也同樣需要使用大括弧括起來按鍵的名稱,例如要發送回車鍵,需要用"WshShell.SendKeys
"{ENTER}""表示,發送向下的方向鍵用"WshShell.SendKeys "{DOWN}""表示。
Space---------WshShell.SendKeys " "
Enter---------WshShell.SendKeys "{ENTER}"
←---------WshShell.SendKeys "{RIGHT}"
↑---------WshShell.SendKeys "{UP}"
F1---------WshShell.SendKeys "{F1}"
Tips:如果需要發送多個重複的單字母按鍵,不必重複輸入該字母,SendKeys允許使用簡化格式進行描述,使用格式為"{按鍵 數位}"。例如要
發送10個字母"x",則輸入"WshShell.SendKeys "{x 10}""即可。
實例:
----------------------------------------------------
按下F5刷新桌面
Dim WshShell,Path,i
Set WshShell = WScript.CreateObject("WScript.Shell")
WshShell.SendKeys "{F5}"
----------------------------------------------------
電腦的自動重啟
set WshShell = CreateObject("WScript.Shell")
WshShell.SendKeys "^{ESC}u"
WshShell.SendKeys "R"
----------------------------------------------------
啟動任務管理器
set WshShell = CreateObject("WScript.Shell")
WshShell.SendKeys "^+{ESC}"
----------------------------------------------------
QQ消息群發
Dim WshShell
Set WshShell= WScript.createObject("WScript.Shell")
WshShell.AppActivate "bomb"
for i=1 to 60
WScript.Sleep 800
WshShell.SendKeys "Number0"
WshShell.SendKeys i
WshShell.SendKeys "%s"
next
----------------------------------------------------
自動到百度搜索歌曲:white flag
Dim WshShell,Path,i
Set WshShell = WScript.CreateObject("WScript.Shell")
WshShell.Run("IEXPLORE.EXE")
WScript.Sleep 2000
WshShell.AppActivate "about:blank-Microsoft Internet Explorer"
WshShell.SendKeys "+{TAB}"
WshShell.SendKeys "http://mp3.baidu.com"
WScript.Sleep 800
WshShell.SendKeys "{ENTER}"
WScript.Sleep 3000
WshShell.SendKeys "white flag"
WScript.Sleep 800
WshShell.SendKeys "{ENTER}"
----------------------------------------------------
在記事本中輸入Happy Birthday!並保存為birth.txt
Dim WshShell
Set WshShell=WScript.CreateObject("WScript.Shell")
WshShell.Run "notepad"
WScript.Sleep 1500
WshShell.AppActivate "無標題 - 記事本"
WshShell.SendKeys "H"
WScript.Sleep 500
WshShell.SendKeys "a"
WScript.Sleep 500
WshShell.SendKeys "p"
WScript.Sleep 500
WshShell.SendKeys "p"
WScript.Sleep 500
WshShell.SendKeys "y"
WScript.Sleep 500
WshShell.SendKeys " "
WScript.Sleep 500
WshShell.SendKeys "B"
WScript.Sleep 500
WshShell.SendKeys "i"
WScript.Sleep 500
WshShell.SendKeys "r"
WScript.Sleep 500
WshShell.SendKeys "t"
WScript.Sleep 500
WshShell.SendKeys "h"
WScript.Sleep 500
WshShell.SendKeys "d"
WScript.Sleep 500
WshShell.SendKeys "a"
WScript.Sleep 500
WshShell.SendKeys "y"
WScript.Sleep 500
WshShell.SendKeys "!"
WScript.Sleep 500
WshShell.SendKeys "%FS"
WScript.Sleep 500
WshShell.SendKeys "b"
WScript.Sleep 500
WshShell.SendKeys "i"
WScript.Sleep 500
WshShell.SendKeys "r"
WScript.Sleep 500
WshShell.SendKeys "t"
WScript.Sleep 500
WshShell.SendKeys "h"
WScript.Sleep 500
WshShell.SendKeys "%S"
WScript.Sleep 500
WshShell.SendKeys "%FX"
----------------------------------------------------
製作能自動定時存檔的記事本
'第一部分:定義變數和物件
Dim WshShell, AutoSaveTime, TXTFileName
AutoSaveTime=300000
Set WshShell=WScript.CreateObject("WScript.Shell")
TXTFileName=InputBox("請輸入你要創建的檔案名(不能用中文和純數字):")
'第二部分:打開並啟動記事本
WshShell.Run "notepad"
WScript.Sleep 200
WshShell.AppActivate "無標題 - 記事本"
'第三部分:用輸入的檔案名存檔
WshShell.SendKeys "^s"
WScript.Sleep 300
WshShell.SendKeys TXTFileName
WScript.Sleep 300
WshShell.SendKeys "%s"
WScript.Sleep AutoSaveTime
'第四部分:自動定時存檔
While WshShell.AppActivate (TXTFileName)=True
WshShell.SendKeys "^s"
WScript.Sleep AutoSaveTime
Wend
WScript.Quit
----------------------------------------------------
當機!
DIM WSHSHELL
SET WSHSHELL=WSCRIPT.CreateOBJECT("WSCRIPT.SHELL")
'WSHSHELL.RUN " "
'WSCRIPT.SLEEP 1000
WSHSHELL.SENDKEYS "{ENTER}"
'WSCRIPT.SLEEP 1000
WSHSHELL.SENDKEYS "{ENTER}"
'WSCRIPT.SLEEP 1000
WSHSHELL.SENDKEYS "{ENTER}"
'WSCRIPT.SLEEP 1000
WSHSHELL.SENDKEYS "{ENTER}"
'WSCRIPT.SLEEP 1000
WSHSHELL.SENDKEYS "{ENTER}"
----------------------------------------------------
定時關機的
Dim WshShell
Set WshShell=WScript.CreateObject("WScript.Shell")
WScript.Sleep 2000
WshShell.Run "shutdown -r -t 120"
wscript.sleep 6000

WshShell.Run "shutdown -a

相關教學:
發表時間 文章標題
2014-08-01 南亞資工軟體設計證照輔導班第2次上課
2014-08-01 991209南亞資工講演軟體設計證照
2011-11-28 南亞資工軟體設計證照輔導班第6次上課
2011-11-28 南亞資工軟體設計證照輔導班第5次上課
2011-11-28 南亞資工軟體設計證照輔導班第2次上課
2011-11-28 南亞資工軟體設計證照輔導班第1次上課
2011-05-10 南亞資工軟體設計證照輔導班第6次上課
2011-05-04 南亞資工軟體設計證照輔導班第5次上課分享
2011-04-06 南亞資工軟體設計證照輔導班第2次上課
2011-03-30 南亞資工軟體設計證照輔導班第1次上課
2010-12-10 991209南亞資工講演軟體設計證照
2009-06-14 VB6.0和VB.Net對照表
2009-06-14 方便好用的FileSystemObject
2009-06-14 在VB中解壓縮備份的方法
2009-06-14 VB6中SendKeys的基本應用
2009-06-06 VB證照比較:TQC VB進階級與軟體設計丙證
2015-06-25 VB.NET範例:撲克牌發牌程式(可延伸VBA或APP等)
2015-06-25 VB.NET範例:大樂透開獎程式(可延伸VBA或APP等)
2015-06-25 VB.NET範例:擲骰子遊戲(可延伸VBA或APP等)
2015-06-25 VB.NET程式設計第12次(擲骰子與大樂透開獎與撲克牌發牌)
2015-06-07 VB.NET實務與資料庫之1(簡介與安裝練習系統)
2015-02-15 VB.NET設計(九九乘法表&小狗動畫&撲克牌&字幕)
2015-01-17 VB.NET自動化設計與資料庫之1(簡介與安裝練習系統)
2015-01-16 VB.NET視窗設計懶人包(銜接VBA)
2015-01-16 VB.NET視窗程式設計第3次上課(銜接EXCEL VBA設計)
2011-10-04 VB.NET2008程式設計入門總整理


VB6 SendKeys 基本應用,vb6下載,vb6資料庫,vb6教學電子書,vb 教學,vb6教學網站,vb6 範例,vb6 陣列,vb6 函數,vb6 0教學

1 則留言:

健華 提到...

老師你好,
我想測試這一部份的 code, 我執行後,出現 "Runtime error '424' " 的錯誤訊息, 不知道是哪裡有問題, 請老師指教 !

mail : hua0729@seed.net.tw
David Chen