VB之SendKeys鍵盤模擬

2021-09-22 06:51:24 字數 4819 閱讀 9259

vb sendkeys語句詳解

大家在vb6中都用過sendkeys,幕通過傳送鍵盤的事件間接地控制外部程式,是有遙控之說。

我在vb7中卻發現這個不能用了, 也就不了了之,

後來一次在查閱msdn的時候竟看到了這個,是以嘗試了一下,竟然舊貌新顏,還是一樣好用。

主要是在system.winforms族中找到sendkeys 使用方法同vb6

鍵:一般的字元鍵如下輸入」a」 「b」 「c」………………」z」等,如果要連續按下兩個以上就使用」ab」的形式

如果同時按下ab就使用括號如」(ab)」

如果是功能鍵,就放到大括號中如「」 另:用+代表shift,用^代表ctrl,用%代表alt

如「+a」表示按下shift同時按a

下面是乙個例子:

dim sdstr as system.winforms.sendkeys

sdstr.send("%") 傳送alt+f4

下面這個**在按下button2以後轉移焦點到下乙個控制項,

使按鈕能按下又不能按受焦點.

protected sub button2_click(byval sender as object, byval e as system.eventargs)

dim sdstr as system.winforms.sendkeys

sdstr.send("")

end sub

下面使用sendwait,使用的方法同上,不過執行這個過程會等待到傳送的鍵執行完成以後,再繼續執行後面的**.

protected sub button2_click(byval sender as object, byval e as system.eventargs)

dim sdstr as system.winforms.sendkeys

'sdstr.send("")

sdstr.sendwait("")

end sub

vb.net中使用shell呼叫外部程式:

呼叫資源管理器

呼叫預設程式

sendkeys是將乙個或多個按鍵訊息傳送到活動視窗,就如同在鍵盤上進行輸入一樣,簡單說就是模擬按鍵 

看例子 

dim returnvalue, i 

returnvalue = shell("calc.exe", 1) ' 執行計算器。 

for i = 1 to 100 ' 設定計數迴圈。 

sendkeys i & "", true ' 按下按鍵給計算器 

next i ' 將所有 i 值相加。 

sendkeys "=", true ' 取得總合。 

msgbox "看結果吧" 

sendkeys "%", true ' 按 alt+f4 關閉計算器。 

如果覺得太難你看這個例子簡單了吧 

將timer1控制項的interval設定為1000 

private sub timer1_timer() 

text1.setfocus 

sendkeys "a" 

end sub 

再來理解sendkeys "+"你看看會有什麼結果 

用這個例子 

private sub timer1_timer() 

text1.setfocus 

sendkeys "+" 

end sub 

會發現text1中的文字全選了 

[結論] 

sendkeys很方便,但千萬要慎重使用,這是一柄雙刃劍,使用不當會傷害自己。 

[下面是msdn的中文幫助] 

sendkeys語句 返回索引 

將乙個或多個按鍵訊息傳送到活動視窗,就如同在鍵盤上進行輸入一樣。 

語法 sendkeys string[, wait] 

sendkeys 語句的語法具有以下幾個命名引數: 

部分 描述 

string 必需的。字串表示式,指定要傳送的按鍵訊息。 

wait 可選的。指定等待方式的 [email protected] 值。如果為 false(預設值),則控制項在按鍵傳送出去之後立刻返回到過程。如果為 true,則按鍵訊息必須在控制項返回到過程之前加以處理。 

說明 每個按鍵由乙個或多個字元表示。為了指定單一鍵盤字元,必須按字元本身的鍵。例如,為了表示字母 a,可以用 "a" 作為 string。為了表示多個字元,就必須在字元後面直接加上另乙個字元。例如,要表示 a、b 及 c,可用 "abc" 作為 string。 

對 sendkeys 來說,加號 (+)、插入符 (^)、百分比符號 (%)、上劃線 (~) 及圓括號 ( ) 都具有特殊意義。為了指定上述任何乙個字元,要將它放在大括號 ({}) 當中。例如,要指定正號,可用 表示。方括號 ([ ]) 對 sendkeys 來說並不具有特殊意義,但必須將它們放在大括號中。在其它應用程式中,方括號有特殊意義,在出現動態資料交換 (dde) 的時候,它可能具有重要意義。為了指定大括號字元,請使用 及 {}}。 

為了在按下按鍵時指定那些不顯示的字元,例如 enter 或 tab 以及那些表示動作而非字元的按鍵,請使用下列**: 

按鍵 ** 

backspace , , 或  

break  

caps lock  

del or delete 或  

down arrow  

end  

enter 或 ~ 

esc  

help  

home  

ins or insert 或  

left arrow  

num lock  

page down  

page up  

print screen  

right arrow  

scroll lock  

tab  

up arrow  

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 的時候同時按下 shift 鍵,但接著按 c 而不按 shift,則使用 "+ec"。 

為了指定重複鍵,使用 的形式。必須在 key 與 number 之間放置乙個空格。例如, 意指 42 次按下 left arrow 鍵; 則是指 10 次按下 h 鍵。 

注意 不能用 sendkeys 將按鍵訊息傳送到這樣乙個應用程式,這個應用程式並沒有被設計成在 microsoft windows 中執行。sendkeys 也無法將 print screen 按鍵 傳送到任何應用程式

將乙個或多個按鍵訊息傳送到活動視窗,就如同在鍵盤上進行輸入一樣。

語法sendkeys string[, wait]

sendkeys 語句的語法具有以下幾個命名引數:

string 必需的。字串表示式,指定要傳送的按鍵訊息。 

wait 可選的。指定等待方式的 [email protected] 值。如果為 false(預設值),則控制項在按鍵傳送出去之後立刻返回到過程。如果為 true,則按鍵訊息必須在控制項返回到過程之前加以處理。 

說明每個按鍵由乙個或多個字元表示。為了指定單一鍵盤字元,必須按字元本身的鍵。例如,為了表示字母 a,可以用 "a" 作為 string。為了表示多個字元,就必須在字元後面直接加上另乙個字元。例如,要表示 a、b 及 c,可用 "abc" 作為 string。

對 sendkeys 來說,加號 (+)、插入符 (^)、百分比符號 (%)、上劃線 (~) 及圓括號 ( ) 都具有特殊意義。為了指定上述任何乙個字元,要將它放在大括號 ({}) 當中。例如,要指定正號,可用 表示。方括號 ([ ]) 對 sendkeys 來說並不具有特殊意義,但必須將它們放在大括號中。在其它應用程式中,方括號有特殊意義,在出現動態資料交換 (dde) 的時候,它可能具有重要意義。為了指定大括號字元,請使用 及 {}}。

為了在按下按鍵時指定那些不顯示的字元,例如 enter 或 tab 以及那些表示動作而非字元的按鍵

為了說明在按下其它按鍵時應同時按下 shift、ctrl、及 alt 的任意組合鍵,請把那些按鍵的碼放在括號當中。例如,為了說明按下 e 與 c 的時候同時按下 shift 鍵,請使用 "+(ec)"。為了說明在按下 e 的時候同時按下 shift 鍵,但接著按 c 而不按 shift,則使用 "+ec"。

為了指定重複鍵,使用 的形式。必須在 key 與 number 之間放置乙個空格。例如, 意指 42 次按下 left arrow 鍵; 則是指 10 次按下 h 鍵。

注意 不能用 sendkeys 將按鍵訊息傳送到這樣乙個應用程式,這個應用程式並沒有被設計成在 microsoft windows 中執行。sendkeys 也無法將 print screen 按鍵 傳送到任何應用程式

作者讚賞

噹噹計算書籍 5-8折

剛做的招標網:

八爪魚招標網 請大家多意見

分類: 

遊戲外掛程式

VB之SendKeys鍵盤模擬

vb sendkeys語句詳解 大家在vb6中都用過sendkeys,幕通過傳送鍵盤的事件間接地控制外部程式,是有遙控之說。我在vb7中卻發現這個不能用了,也就不了了之,後來一次在查閱msdn的時候竟看到了這個,是以嘗試了一下,竟然舊貌新顏,還是一樣好用。主要是在system.winforms族中找...

程式模擬按鍵,SendKeys傳送空格

做了乙個小程式,用按鈕來模擬數字的輸入,如下圖 將10個按鈕放在乙個panel1中,名稱分別是button1,button2,後面依次類推 下面的文字框名稱為textbox1 想要解決的問題 當點選乙個按鈕時,就如同使用者輸入了乙個數字,並在其後打了乙個空格,比如我點選一下8,相當於在textbox...

selenium之模擬鍵盤事件

selenium裡面提供了乙個keys 類,它提供了鍵盤上幾乎所有的按鍵方法 from selenium.webdriver.common.keys import keys 匯入keys類 示例 from selenium import webdriver from selenium.webdriv...