用vbs實現模擬按鍵

2021-04-20 02:00:00 字數 3115 閱讀 2006

用vbs實現模擬按鍵

windows 指令碼宿主

sendkeys 方法

請參閱

wshshell 物件 | run 方法

將乙個或多個鍵擊傳送到活動視窗(彷彿是在鍵盤上擊鍵一樣)。

object.sendkeys(string)

引數 object

wshshell 物件。

string

表示要傳送的鍵擊(乙個或多個)的字串值。

說明 使用 sendkeys 方法可以將鍵擊傳送到無自動化介面的應用程式中。多數鍵盤字元都可用乙個鍵擊表示。某些鍵盤字元由多個鍵擊組合而成(例如,ctrl+shift+home)。要傳送單個鍵盤字元,請將字元本身作為 string 引數傳送。例如,要傳送字母 x,則請傳送 string 引數 "x"。

注意 要傳送空格,則請傳送字串 " "。

可使用 sendkeys 同時傳送多個鍵擊。為此,可將每個鍵擊按順序排列在一起,以此來建立表示一系列鍵擊的復合字串引數。例如,要傳送鍵擊 a、b 和 c,則需要傳送字串引數 "abc"。sendkeys 方法將某些字元用作字元的修飾符(而不使用其本身的含義)。這組特殊的字元可包括圓括號、中括號、大括號,以及:

加號 "+"、

插入記號 "^"、

百分號 "%"、

和「非」符號 "~"。

用大括號 "{}" 括起這些字元可以傳送它們。例如,要傳送加號,請使用字串引數 ""。sendkeys中使用的中括號 "[ ]" 無任何特殊含義,但是必須把它們括在大括號中,以便容納確實要賦予其特殊含義的應用程式(例如,對於動態資料交換 (dde) 就是這樣)。

要傳送左中括號字元,請傳送字串引數 ""。

要傳送左大括號字元,請傳送字串引數 "";要傳送右大括號字元,請傳送字串引數 "{}}"。

某些鍵擊不生成字元(如 enter 和 tab)。某些鍵擊表示操作(如 backspace 和 break)。要傳送這些型別的鍵擊,請傳送下表中列出的引數:

鍵 引數

退格鍵 、 或

break

caps lock

del 或 delete 或

向下鍵

end

enter 或 ~

esc

help

home

ins 或 insert 或

向左鍵

num lock

page down

page up

print screen

向右鍵

scroll lock

tab

向上鍵

f1

f2

f3

f4

f5

f6

f7

f8

f9

f10

f11

f12

f13

f14

f15

f16

要傳送由常規鍵擊和 shift、ctrl 或 alt 組合而成的鍵盤字元,請建立表示該鍵擊組合的復合字串引數。可通過在常規鍵擊之前新增乙個或多個以下特殊字元來完成上述操作:

鍵 特殊字元

shift +

ctrl ^

alt %

注意 這樣使用時,不用大括號括起這些特殊字元。

要指定在按下多個其他鍵時,按下 shift、ctrl 和 alt 的組合,請建立復合字串引數,用括號括起其中的組合鍵。例如,要傳送的組合鍵指定:

如果在按 e 和 c 的同時按 shift 鍵,則傳送字串引數 "+(ec)"。

如果在按 e 時只按 c(而不按 shift),則傳送字串引數 "+ec"。

可使用 sendkeys 方法傳送一種在一行內重複按鍵的鍵擊。為此,要建立復合字串引數,以指定要重複的鍵擊,並在其後指定重複次數。可使用 形式的復合字串引數來完成上述操作。例如,如果要傳送 10 次 "x",則需要傳送字串引數 ""。請確保在鍵擊和數字之間有乙個空格。

注意 只可以傳送重複按乙個鍵的鍵擊。例如,可以傳送 10 次 "x",但不可傳送 10 次 "ctrl+x"。

注意 不能向應用程式傳送 print screen 鍵 。

示例 靜音指令碼.vbs

dim wshshell

set wshshell = createobject("wscript.shell")

wshshell.run "c:/windows/system32/sndvol32.exe"

wscript.sleep 1000

wshshell.sendkeys ""

wshshell.sendkeys ""

wshshell.sendkeys ""

wscript.sleep 500

wshshell.sendkeys "%"

解除靜音.vbs

dim wshshell

set wshshell = createobject("wscript.shell")

wshshell.run "c:/windows/system32/sndvol32.exe"

wscript.sleep 1000

wshshell.sendkeys ""

wshshell.sendkeys ""

wshshell.sendkeys ""

wscript.sleep 500

wshshell.sendkeys "%"

'qq自動登陸指令碼

dim wsh,qqpath

set wsh=wscript.createobject("wscript.shell")

wsh.run qqpath

wscript.sleep 1000

wsh.sendkeys"+" '這一句是在你有qq號碼記錄的時候用到的

wsh.sendkeys"123456789" '這裡是你的qq號

wsh.sendkeys""

wscript.sleep 200

wsh.sendkeys"yourpassword" '這裡是你的密碼

wsh.sendkeys""

驅動中實現模擬鍵盤按鍵

標 題 驅動中實現模擬鍵盤按鍵 作 者 luocong 在ring3中實現模擬鍵盤按鍵有n n種方式,比如sendinput keybd event 但在驅動中要怎麼模擬呢?1 寫埠 define defi8042 data port puchar 0x60 define defi8042 ctrl...

驅動中實現模擬鍵盤按鍵

標 題 驅動中實現模擬鍵盤按鍵 作 者 luocong 在ring3中實現模擬鍵盤按鍵有n n種方式,比如sendinput keybd event 但在驅動中要怎麼模擬呢?1 寫埠 define defi8042 data port puchar 0x60 define defi8042 ctrl...

模擬鍵盤按鍵

模擬全域性按鍵可以用keybd event,sendinput來完成,下面是模擬一次caps lock 按鍵時兩個api函式的實現方法 keybd event keybd event vk capital,0,keyeventf extendedkey 0,0 key down keybd even...