English Deutsch Français Italiano Español Português 繁體中文 Bahasa Indonesia Tiếng Việt ภาษาไทย
所有分類

想要可以寫一個會按照我給他的一個txt檔
去逐字模擬按下鍵盤的小程式
比如說:
---- 1.txt ----
hi!
This is a pen.
That is a book.
---- End ----

那我就可以叫他打1.txt
他就會focus到某一個視窗
開始逐字打出
\"h\",\"i\",\"!\",chr(13),\"T\",\"h\",......

請問要怎麼寫呢
謝謝

2006-07-24 12:45:02 · 2 個解答 · 發問者 片兔 1 in 電腦與網際網路 程式設計

你說的sendkey我知道
我的問題不在這邊
主要是在要怎樣把這些東西
送到一個視窗去
就算這個視窗是失焦的
這才是我想要的功能
再來是從這個txt檔截取資料的問題

2006-07-24 19:14:56 · update #1

謝謝wjs超級熱心的協助
請問如果我要加入一個random的interval
是不是在裡面加一個類似delay的function呢
還是有更好的作法
你的回答已經遠超過十點了
我可以再開一個問題給您 再給您十點嗎
太詳細了

2006-07-27 18:43:35 · update #2

wjs你好,
可是我用你的這個寫法
視窗失焦時 他就不會繼續送出文字
請問有辦法解決嗎

2006-07-28 05:10:28 · update #3

出現錯誤了!
函數呼叫或引數不正確!
怎麼會這樣!!
而且要把視窗最小化時會整個halt住

2006-07-28 05:30:03 · update #4

那如果用send message呢
怎麼寫 謝謝你

2006-07-31 19:37:31 · update #5

2 個解答

這問題需要動用到API由於程式碼超過2000字我把它放置以下連結(免費空間只能放7天)點我下載下載頁面

2006-07-28 00:50:03 補充:
不用再另開問題了^_^,程式裡面不是有個Sleep函數嗎?它本身就是在做Delay用的(單位:1/1000秒,跟Timer元件一樣)隨機延遲0.5秒~1秒:Randomize TimerSleep Int(Rnd * 501 + 500)只是它有個缺點就是在Delay時程式是被咬住的,此時你無法對程式做任何事,就好像當掉一樣XD,試看看:Sleep 1000010秒沒到以前你試著移動視窗,應該沒辦法吧!!

2006-07-28 01:04:34 補充:
我們可以自己寫個Delay函數來改善這問題Sub Delay(ByVal N#)  Dim A#, B#  A = Timer  Do    B = Timer    If B < A Then B = B + 86400    DoEvents  Loop Until B - A > NEnd Sub單位是1秒,不過因為加了Doevents故程式就不會被鎖住了隨機延遲0.5秒~1秒:Randomize TimerDelay Int(Rnd * 6 + 5) * 0.1

2006-07-28 13:16:29 補充:
因為你指定要使用Sendkeys的方式,Sendkeys只對取得駐點的視窗才有效用,故視窗只要一失去駐點當然就失效了.至於縮小或放大視窗會當掉我還沒找到原因我猜想會不會因為剛好在送出指令的同時去改變視窗狀態因而產生錯誤XD?若你不堅持用SendKeys其實還有別的做法,且我寫這程式還有很多Bug譬如說我只讓你選擇程式的父視窗讓它取得駐點後就SendKeys,其實還要能選擇父視窗裡的子元件(視窗)要不然若該視窗雖然得到駐點,但它的駐點是停在按鈕元件上此時你怎麼送SendKeys給它它還是沒反應的,要解決這些問題我想用SendMessage來做比較適合吧.

2006-07-25 14:49:18 · answer #1 · answered by W.J.S. 7 · 0 0

跟你講一下控制鍵盤語法,利用SendKeys陳述式,就猶如親手打字一般
以下是可以用的程式碼,詳情請參考說明

鍵 程式碼
BACKSPACE          {BACKSPACE} 或 {BS}
BREAK            {BREAK}
CLEAR            {CLEAR}
DELETE or DEL        {DELETE} 或 {DEL}
END             {END}
ENTER(數字鍵)       {ENTER}
ENTER ~             (tilde)
ESC              {ESCAPE} 或 {ESC}
HELP             {HELP}
HOME            {HOME}
INS              {INSERT}
TAB             {TAB}
CAPS/SCROLL/NUM LOCK    {CAPSLOCK}/{SCROLLLOCK}/{NUMLOCK}
PAGE UP/DOWN        {PGUP}/{PGDN}
RETURN            {RETURN}
UP/DOWN/LEFT/RIGHT ARROW   {UP}/{DOWN}/{LEFT}/{RIGHT}
F1 至 F15            {F1} 至 {F15}
SHIFT              +
CTRL              ^
ALT               %

例一:按下Alt + F4
SendKeys "%{F4}"

例二:按著Alt 再連按4下 F4
SendKeys "%({F4}{F4}{F4}{F4})"

例三:按下Ctrl + V
SendKeys "+V"

例四:按下Ctrl + Shift 換成新注音輸入法後輸入「你好」
SendKeys "+^"
SendKeys "su3cl3"
SendKeys "{ENTER}"

給你一個做參考
http://www.chinesefreewebs.com/myblog/vb_sendkeys/

2006-07-24 15:02:49 · answer #2 · answered by Shinwill 4 · 0 0

fedest.com, questions and answers