如何用C++Builder6.0對電腦自動送出字串 |
答題得分者是:g6101
|
x06nk4
一般會員 發表:1 回覆:3 積分:0 註冊:2004-05-05 發送簡訊給我 |
可以告知一下 如果我現在要用C Builder6.0寫出一個會對電腦自動送出字串的程式 那應該要怎麼寫呢? 我想應該是用類似vb裡的shell吧 可是我不知道用法 整本6.0書都翻過 沒看到有類似的指令可以用耶..>O< Help~望大大指點 (例如: 當我按下鍵盤上"~"按鍵時 每間隔一秒會對電腦送出"A"這個字串)
(不是"顯示" "A" 哦 執行之後就像是每隔一秒 我就再鍵盤上面按一次"A"一樣一直重複) 發表人 - x06nk4 於 2004/05/05 02:34:03 發表人 - taishyang 於 2004/05/05 16:02:37
------
現在目標: 努力學好程式語言!! 將來目標: 環遊世界! (好像沒什麼關係哦 @_@a) |
g6101
高階會員 發表:22 回覆:129 積分:110 註冊:2002-06-15 發送簡訊給我 |
x06nk4您好:
請參考以下的程式碼,視需求自行修改
bool key_backquote = false; TForm1 *Form1; //----------------------- __fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner) { Timer1->Interval = 1000; //一秒鐘 Timer1->Enabled = false; Form1->KeyPreview = true; } //----------------------- void __fastcall TForm1::FormKeyPress(TObject *Sender, char &Key) { if (Key == 0x60) { //循環控制(送出與停止) key_backquote = !key_backquote; Timer1->Enabled = key_backquote; Key = 0; } } //----------------------- void __fastcall TForm1::Timer1Timer(TObject *Sender) { keybd_event(0x41,0,0,0); keybd_event(0x41,0,KEYEVENTF_KEYUP,0); }◎天長地久有時盡,追求知識無絕期! |
bigdogchina
版主 發表:238 回覆:523 積分:312 註冊:2003-04-28 發送簡訊給我 |
|
x06nk4
一般會員 發表:1 回覆:3 積分:0 註冊:2004-05-05 發送簡訊給我 |
Form1->KeyPreview = true; <===這是? key_backquote = !key_backquote; <===這是? keybd_event(0x41,0,0,0);
keybd_event(0x41,0,KEYEVENTF_KEYUP,0); <===這兩句我也不懂 可以幫我講解一下ㄇ? 用法? 目的? 現在目標: 努力學好程式語言!! 將來目標: 環遊世界! (好像沒什麼關係哦 @_@a)
------
現在目標: 努力學好程式語言!! 將來目標: 環遊世界! (好像沒什麼關係哦 @_@a) |
x06nk4
一般會員 發表:1 回覆:3 積分:0 註冊:2004-05-05 發送簡訊給我 |
謝謝你哦~ 對了 可以把程式改成 當我對電腦送出"`"這個字串時 啟動自動送出"A"字串 就是不要用"當我在表單上按下" (FormKeyPress) 可以改成"當我對電腦按下" 之類的ㄇ? 感謝各位大大滴指導.. ^O^ 現在目標: 努力學好程式語言!! 將來目標: 環遊世界! (好像沒什麼關係哦 @_@a) 發表人 - x06nk4 於 2004/05/05 14:26:36
------
現在目標: 努力學好程式語言!! 將來目標: 環遊世界! (好像沒什麼關係哦 @_@a) |
g6101
高階會員 發表:22 回覆:129 積分:110 註冊:2002-06-15 發送簡訊給我 |
引言: Form1->KeyPreview = true; <===這是? key_backquote = !key_backquote; <===這是? keybd_event(0x41,0,0,0); keybd_event(0x41,0,KEYEVENTF_KEYUP,0); <===這(1)Form1->KeyPreview 它是用來處理有關鍵盤輸入(OnKeyDown、OnKeyUp、OnKeyPress)事件的決定模式。當KeyPreview的值為false(假)時,這些來自鍵盤輸入事件,只有在Form取得輸入焦點(Active)時才會被觸動;相反的,當其值為true(真)時,這些來自鍵盤輸入事件,可以在Form取得輸入焦點(Active)之前,就被觸動。你可以拿本範例做個實驗,在Form上頭多擺幾個TEdit及TButton元件,先令KeyPreview 的值為 false 並把輸入焦點移至TEdit控制元件,當你按下backquote鍵時會得到"`"字元;相反的,當其值為true時,就會順利的觸動本範例。 (2)key_backquote是自定的(bool)布林值,用來記錄及決定處理方式。 (3)keybd_event是用來模擬鍵盤被按下/鬆開,並送出鍵盤掃描碼給系統的API(詳見SDK說明或搜尋本網站有更詳盡的使用方及解說)。 ◎天長地久有時盡,追求知識無絕期! |
x06nk4
一般會員 發表:1 回覆:3 積分:0 註冊:2004-05-05 發送簡訊給我 |
謝謝大大詳盡的解說! ^o^ 那有可能可以讓程式達成我以下的要求ㄇ? 舉例: 當我執行程式 再打開筆記本 在筆記本輸入文字時 按下"`"這個按
鍵 電腦就會自動一直顯示"A"這個字母 也就是說我不用先跳回表單 啟動Timer元件 然後在開筆記本 意思同於 {當我對電腦輸入"`"按鍵時} 而不是當我在表單上按下"`"按鍵 有辦法可以做到嗎? 現在目標: 努力學好程式語言!! 將來目標: 環遊世界! (好像沒什麼關係哦 @_@a)
------
現在目標: 努力學好程式語言!! 將來目標: 環遊世界! (好像沒什麼關係哦 @_@a) |
g6101
高階會員 發表:22 回覆:129 積分:110 註冊:2002-06-15 發送簡訊給我 |
請參考以下的連結
http://delphi.ktop.com.tw/topic.php?TOPIC_ID=46574
或使用本站【搜尋文章】的功能,搜尋字串為「HotKey」,裡頭有完整的範例及解說. ◎天長地久有時盡,追求知識無絕期!
|
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |