全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:1119
推到 Plurk!
推到 Facebook!

如何用C++Builder6.0對電腦自動送出字串

答題得分者是:g6101
x06nk4
一般會員


發表:1
回覆:3
積分:0
註冊:2004-05-05

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-05-05 02:24:50 IP:211.76.xxx.xxx 未訂閱
可以告知一下 如果我現在要用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

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-05-05 09:57:45 IP:61.226.xxx.xxx 未訂閱
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

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-05-05 10:03:23 IP:211.162.xxx.xxx 未訂閱
x06nk4大大,您好!
void __fastcall TForm1::Timer1Timer(TObject *Sender)
{
        PostMessage(this->Edit1->Handle,WM_KEYDOWN,65,0);
}
我也是一知半解,如有謬誤,請您多多包涵 < class="code"> =============== 人生在勤,不索何获? ===============
------
人生在勤,不索何获?
x06nk4
一般會員


發表:1
回覆:3
積分:0
註冊:2004-05-05

發送簡訊給我
#4 引用回覆 回覆 發表時間:2004-05-05 13:58:35 IP:211.76.xxx.xxx 未訂閱
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

發送簡訊給我
#5 引用回覆 回覆 發表時間:2004-05-05 14:10:41 IP:211.76.xxx.xxx 未訂閱
謝謝你哦~ 對了 可以把程式改成 當我對電腦送出"`"這個字串時 啟動自動送出"A"字串 就是不要用"當我在表單上按下" (FormKeyPress) 可以改成"當我對電腦按下" 之類的ㄇ? 感謝各位大大滴指導.. ^O^ 現在目標: 努力學好程式語言!! 將來目標: 環遊世界! (好像沒什麼關係哦 @_@a) 發表人 - x06nk4 於 2004/05/05 14:26:36
------
現在目標: 努力學好程式語言!!

將來目標: 環遊世界!

(好像沒什麼關係哦 @_@a)
g6101
高階會員


發表:22
回覆:129
積分:110
註冊:2002-06-15

發送簡訊給我
#6 引用回覆 回覆 發表時間:2004-05-05 19:07:49 IP:61.226.xxx.xxx 未訂閱
引言: 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

發送簡訊給我
#7 引用回覆 回覆 發表時間:2004-05-06 12:52:30 IP:211.76.xxx.xxx 未訂閱
謝謝大大詳盡的解說! ^o^ 那有可能可以讓程式達成我以下的要求ㄇ? 舉例: 當我執行程式 再打開筆記本 在筆記本輸入文字時 按下"`"這個按 鍵 電腦就會自動一直顯示"A"這個字母 也就是說我不用先跳回表單 啟動Timer元件 然後在開筆記本 意思同於 {當我對電腦輸入"`"按鍵時} 而不是當我在表單上按下"`"按鍵 有辦法可以做到嗎? 現在目標: 努力學好程式語言!! 將來目標: 環遊世界! (好像沒什麼關係哦 @_@a)
------
現在目標: 努力學好程式語言!!

將來目標: 環遊世界!

(好像沒什麼關係哦 @_@a)
g6101
高階會員


發表:22
回覆:129
積分:110
註冊:2002-06-15

發送簡訊給我
#8 引用回覆 回覆 發表時間:2004-05-06 21:19:10 IP:163.29.xxx.xxx 未訂閱
請參考以下的連結 http://delphi.ktop.com.tw/topic.php?TOPIC_ID=46574 或使用本站【搜尋文章】的功能,搜尋字串為「HotKey」,裡頭有完整的範例及解說. ◎天長地久有時盡,追求知識無絕期!
系統時間:2024-06-26 11:03:36
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!