F1-F12的keyCode分別為112-123 用VBS的Sendkeys方法
創(chuàng)新互聯(lián)公司-成都網(wǎng)站建設(shè)公司,專注成都做網(wǎng)站、成都網(wǎng)站設(shè)計(jì)、成都外貿(mào)網(wǎng)站建設(shè)、網(wǎng)站營銷推廣,申請域名,雅安服務(wù)器托管,網(wǎng)站托管、服務(wù)器租用有關(guān)企業(yè)網(wǎng)站制作方案、改版、費(fèi)用等問題,請聯(lián)系創(chuàng)新互聯(lián)公司。
set WshShell = CreateObject("WScript.Shell")
WshShell.SendKeys "{F1}"
WshShell.SendKeys "{F2}"
WshShell.SendKeys "{F3}"
WshShell.SendKeys "{F4}"
WshShell.SendKeys "{F5}"
WshShell.SendKeys "{F6}"
WshShell.SendKeys "{F7}"
WshShell.SendKeys "{F8}"
WshShell.SendKeys "{F9}"
WshShell.SendKeys "{F10}"
WshShell.SendKeys "{F11}"
WshShell.SendKeys "{F12}"
SendKeys 方法
請參閱
WshShell 對象 | Run 方法
將一個(gè)或多個(gè)鍵擊發(fā)送到活動(dòng)窗口(仿佛是在鍵盤上擊鍵一樣)。
object.SendKeys(string)
參數(shù)
object
WshShell 對象。
string
表示要發(fā)送的鍵擊(一個(gè)或多個(gè))的字符串值。
說明
使用 SendKeys 方法可以將鍵擊發(fā)送到無自動(dòng)化界面的應(yīng)用程序中。多數(shù)鍵盤字符都可用一個(gè)鍵擊表示。某些鍵盤字符由多個(gè)鍵擊組合而成(例如,CTRL+SHIFT+HOME)。要發(fā)送單個(gè)鍵盤字符,請將字符本身作為 string 參數(shù)發(fā)送。例如,要發(fā)送字母 x,則請發(fā)送 string 參數(shù) "x"。
注意 要發(fā)送空格,則請發(fā)送字符串 " "。
可使用 SendKeys 同時(shí)發(fā)送多個(gè)鍵擊。為此,可將每個(gè)鍵擊按順序排列在一起,以此來創(chuàng)建表示一系列鍵擊的復(fù)合字符串參數(shù)。例如,要發(fā)送鍵擊 a、b 和 c,則需要發(fā)送字符串參數(shù) "abc"。SendKeys 方法將某些字符用作字符的修飾符(而不使用其本身的含義)。這組特殊的字符可包括圓括號、中括號、大括號,以及:
加號 "+"、
插入記號 "^"、
百分號 "%"、
和“非”符號 "~"。
用大括號 "{}" 括起這些字符可以發(fā)送它們。例如,要發(fā)送加號,請使用字符串參數(shù) "{+}"。SendKeys中使用的中括號 "[ ]" 無任何特殊含義,但是必須把它們括在大括號中,以便容納確實(shí)要賦予其特殊含義的應(yīng)用程序(例如,對于動(dòng)態(tài)數(shù)據(jù)交換 (DDE) 就是這樣)。
要發(fā)送左中括號字符,請發(fā)送字符串參數(shù) "{[]";要發(fā)送右中括號字符,請發(fā)送字符串參數(shù) "{]}"。
要發(fā)送左大括號字符,請發(fā)送字符串參數(shù) "{{}";要發(fā)送右大括號字符,請發(fā)送字符串參數(shù) "{}}"。
某些鍵擊不生成字符(如 ENTER 和 TAB)。某些鍵擊表示操作(如 BACKSPACE 和 BREAK)。要發(fā)送這些類型的鍵擊,請發(fā)送下表中列出的參數(shù):
鍵 參數(shù)
退格鍵 {BACKSPACE}、{BS} 或 {BKSP}
BREAK {BREAK}
CAPS LOCK {CAPSLOCK}
DEL 或 DELETE {DELETE} 或 {DEL}
向下鍵 {DOWN}
END {END}
ENTER {ENTER} 或 ~
ESC {ESC}
HELP {HELP}
HOME {HOME}
INS 或 INSERT {INSERT} 或 {INS}
向左鍵 {LEFT}
NUM LOCK {NUMLOCK}
PAGE DOWN {PGDN}
PAGE UP {PGUP}
PRINT SCREEN {PRTSC}
向右鍵 {RIGHT}
SCROLL LOCK {SCROLLLOCK}
TAB {TAB}
向上鍵 {UP}
F1 {F1}
F2 {F2}
F3 {F3}
F4 {F4}
F5 {F5}
F6 {F6}
F7 {F7}
F8 {F8}
F9 {F9}
F10 {F10}
F11 {F11}
F12 {F12}
F13 {F13}
F14 {F14}
F15 {F15}
F16 {F16}
要發(fā)送由常規(guī)鍵擊和 SHIFT、CTRL 或 ALT 組合而成的鍵盤字符,請創(chuàng)建表示該鍵擊組合的復(fù)合字符串參數(shù)。可通過在常規(guī)鍵擊之前添加一個(gè)或多個(gè)以下特殊字符來完成上述操作:
鍵 特殊字符
SHIFT +
CTRL ^
ALT %
注意 這樣使用時(shí),不用大括號括起這些特殊字符。
要指定在按下多個(gè)其他鍵時(shí),按下 SHIFT、CTRL 和 ALT 的組合,請創(chuàng)建復(fù)合字符串參數(shù),用括號括起其中的組合鍵。例如,要發(fā)送的組合鍵指定:
如果在按 e 和 c 的同時(shí)按 SHIFT 鍵,則發(fā)送字符串參數(shù) "+(ec)"。
如果在按 e 時(shí)只按 c(而不按 SHIFT),則發(fā)送字符串參數(shù) "+ec"。
可使用 SendKeys 方法發(fā)送一種在一行內(nèi)重復(fù)按鍵的鍵擊。為此,要?jiǎng)?chuàng)建復(fù)合字符串參數(shù),以指定要重復(fù)的鍵擊,并在其后指定重復(fù)次數(shù)??墒褂?{鍵擊 數(shù)字} 形式的復(fù)合字符串參數(shù)來完成上述操作。例如,如果要發(fā)送 10 次 "x",則需要發(fā)送字符串參數(shù) "{x 10}"。請確保在鍵擊和數(shù)字之間有一個(gè)空格。
注意 只可以發(fā)送重復(fù)按一個(gè)鍵的鍵擊。例如,可以發(fā)送 10 次 "x",但不可發(fā)送 10 次 "Ctrl+x"。
注意 不能向應(yīng)用程序發(fā)送 PRINT SCREEN 鍵 {PRTSC}。
示例
下面的示例演示如何將一個(gè) .wsf 文件用于以不同腳本語言(VBScript 和 Jscript)寫成的兩個(gè)作業(yè)。每個(gè)作業(yè)都運(yùn)行 Windows 計(jì)算器并將它發(fā)送給鍵擊以執(zhí)行簡單的計(jì)算。
package
job id="vbs"
script language="VBScript"
set WshShell = WScript.CreateObject("WScript.Shell")
WshShell.Run "calc"
WScript.Sleep 100
WshShell.AppActivate "Calculator"
WScript.Sleep 100
WshShell.SendKeys "1{+}"
WScript.Sleep 500
WshShell.SendKeys "2"
WScript.Sleep 500
WshShell.SendKeys "~"
WScript.Sleep 500
WshShell.SendKeys "*3"
WScript.Sleep 500
WshShell.SendKeys "~"
WScript.Sleep 2500
/script
/job
job id="js"
script language="JScript"
var WshShell = WScript.CreateObject("WScript.Shell");
WshShell.Run("calc");
WScript.Sleep(100);
WshShell.AppActivate("Calculator");
WScript.Sleep(100);
WshShell.SendKeys ("1{+}");
WScript.Sleep(500);
WshShell.SendKeys("2");
WScript.Sleep(500);
WshShell.SendKeys("~");
WScript.Sleep(500);
WshShell.SendKeys("*3");
WScript.Sleep(500);
WshShell.SendKeys("~");
WScript.Sleep(2500);
/script
/job
/package
調(diào)用api
在Visual Baisc.net中的聲明:
Declare Sub mouse_event Lib "user32" (ByVal dwFlags As Long, ByVal dx As Long, ByVal dy As Long, ByVal cButtons As Long, ByVal dwExtraInfo As Long)
Public Const MOUSEEVENTF_LEFTDOWN = H2 '模擬鼠標(biāo)左鍵按下
Public Const MOUSEEVENTF_LEFTUP = H4 ’模擬鼠標(biāo)左鍵釋放
Public Const MOUSEEVENTF_MIDDLEDOWN = H20 '模擬鼠標(biāo)中間鍵按下
Public Const MOUSEEVENTF_MIDDLEUP = H40 '模擬鼠標(biāo)中間鍵釋放
Public Const MOUSEEVENTF_RIGHTDOWN = H8 '模擬鼠標(biāo)右鍵按下
Public Const MOUSEEVENTF_RIGHTUP = H10 '模擬鼠標(biāo)右鍵釋放
Public Const MOUSEEVENTF_MOVE = H1 '模擬鼠標(biāo)指針移動(dòng)
例:
mouse_event MOUSEEVENTF_LEFTDOWN,10,10,0,0
'在(10,10)模擬鼠標(biāo)左鍵按下
要求不多的話,完全可以用按鍵精靈的,你用vb.net去實(shí)現(xiàn)的話,反而啰嗦了。。。
DoEvents這個(gè)命令,用起來不是很好...
你可以增加一個(gè)Boolean型的變量B(你已經(jīng)用到了Switch,那你就把我下面的代碼中的B改為Switch吧),在TIMER控件循環(huán)執(zhí)行時(shí)每次都去判斷變量B是否為True,如果是就運(yùn)行,否則跳出循環(huán)或者其他,添加一個(gè)控件(或者代碼)添加代碼B= Not B,用于中斷/繼續(xù)TIMER控件循環(huán)執(zhí)行...
如果要達(dá)到繼續(xù)TIMER控件循環(huán)執(zhí)行,這個(gè)有點(diǎn)難,有兩種解決方法:
1.
For i = 1 To p
Do Until B
DoEvents
Loop
...
這個(gè)方法,在Do循環(huán)時(shí),CPU使用比較高,而且有不太順的感覺...
2.
使用靜態(tài)變量i
Private Sub Timer1_Timer()
Static i As Integer
If Not B then
Timer1.InterVal=500 '用于快速判斷是否可以繼續(xù)執(zhí)行
Exit Sub
Else
Timer1.Interval= '設(shè)置回原值
End If
Dim p As Byte, Text As String
p = Val(SendMessage(Text2.hWnd, EM_GETLINECOUNT, 0, 0))
Do Until i=p
i=i+1
TB1_GetLine Text2.hWnd, i - 1, Text
PublicRun Text
If Not B then
Timer1.InterVal=500 '用于快速判斷是否可以繼續(xù)執(zhí)行
Exit Sub
End If
Loop
If Check1.Value = 0 Then Timer1.Interval = 0
End Sub
大概思路就是這樣,你試試...
如果能實(shí)現(xiàn),還請你跟大家分享下...O(∩_∩)O~...
本文名稱:vb.net按鍵精靈 按鍵精靈和vb的關(guān)系
分享URL:http://muchs.cn/article18/hgsodp.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供虛擬主機(jī)、網(wǎng)站營銷、網(wǎng)站設(shè)計(jì)、網(wǎng)站維護(hù)、建站公司、電子商務(wù)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)