線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:1949
推到 Plurk!
推到 Facebook!

請教"CTRL+V"這個貼上動作,如何以程式完成!

答題得分者是:pceyes
stonys
初階會員


發表:64
回覆:111
積分:38
註冊:2002-09-28

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-10-29 23:37:59 IP:211.74.xxx.xxx 未訂閱
各位前輩好...這樣的問題,可能有點奇怪... 就是小弟想知道... 如果想以程式(例如一個程序)來做到CTRL V這個貼上的動作... 該如何做,謝謝!
ccchen
版主


發表:61
回覆:940
積分:1394
註冊:2002-04-15

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-10-30 08:47:28 IP:218.163.xxx.xxx 未訂閱
引言: 各位前輩好...這樣的問題,可能有點奇怪... 就是小弟想知道... 如果想以程式(例如一個程序)來做到CTRL V這個貼上的動作... 該如何做,謝謝!
CTRL V實際上就是取出Clipboard中的內容, 故你可以直接 Edit1.text:= Clipboard.asText 記得要uses Clipbrd 若不是文字, 如BitMap等也可以用Clipboard.assign(..)
timhuang
尊榮會員


發表:78
回覆:1815
積分:1608
註冊:2002-07-15

發送簡訊給我
#3 引用回覆 回覆 發表時間:2003-10-30 12:57:30 IP:203.95.xxx.xxx 未訂閱
除了直接使用 Clipbrd 外, 也可以用 WM_PASTE Message 的方式, 如下:    
procedure TForm1.Button1Click(Sender: TObject);
begin
  SendMessage(Memo1.Handle, WM_PASTE, 0, 0);
end;
ko
資深會員


發表:28
回覆:785
積分:444
註冊:2002-08-14

發送簡訊給我
#4 引用回覆 回覆 發表時間:2003-10-30 16:45:50 IP:61.221.xxx.xxx 未訂閱
stonys你好: 基本法如下     keybd_event(Ord(#17),0,0,0);//按下ctrl     keybd_event(Ord(#86),0,0,0);//按下v     keybd_event(Ord(#86), 0, KEYEVENTF_KEYUP, 0);//放開v     keybd_event(Ord(#17), 0, KEYEVENTF_KEYUP, 0);//放開ctrl 我只是來插花...
------
======================
昏睡~
不昏睡~
不由昏睡~
pceyes
尊榮會員


發表:70
回覆:657
積分:1140
註冊:2003-03-13

發送簡訊給我
#5 引用回覆 回覆 發表時間:2003-10-30 18:19:30 IP:211.76.xxx.xxx 未訂閱
這個程式就是 1.先傳資料到clipperboard 2.再傳Ctrl-V鍵到另一個應用程式,應用程式就自行取得clpperboard的資料    用Senderkey及Hook 作成的詞庫貼(附Source) http://delphi.ktop.com.tw/topic.php?TOPIC_ID=29551 程式我研究了好幾年,寫得不好,但勉強可以用,不知是不是你要的 努力會更接近成功
------
努力會更接近成功
stonys
初階會員


發表:64
回覆:111
積分:38
註冊:2002-09-28

發送簡訊給我
#6 引用回覆 回覆 發表時間:2003-10-30 18:31:21 IP:211.74.xxx.xxx 未訂閱
因我想做的是類似'貼多多'可以用熱鍵控制多次的複製貼上... 而不是對自己開發的程式作複製貼上... 因此ccchen版主的回答我比較用不上,但還是感謝指導! timhuang大大的回答比較接近我的答案...故答題得分指定給他! 而ko大大的回答很有趣,但是當我熱鍵設定為ctrl '某按鍵時' 若ctrl按住...則熱鍵觸發只有第一次可以正確執行...第二次之後就失效... 但您的方式我會記住應用在其他方面的!
stonys
初階會員


發表:64
回覆:111
積分:38
註冊:2002-09-28

發送簡訊給我
#7 引用回覆 回覆 發表時間:2003-10-30 18:33:04 IP:211.74.xxx.xxx 未訂閱
引言: 這個程式就是 1.先傳資料到clipperboard 2.再傳Ctrl-V鍵到另一個應用程式,應用程式就自行取得clpperboard的資料 用Senderkey及Hook 作成的詞庫貼(附Source) http://delphi.ktop.com.tw/topic.php?TOPIC_ID=29551 程式我研究了好幾年,寫得不好,但勉強可以用,不知是不是你要的 努力會更接近成功
P SIR 謝謝您 因為文章發表完才看到您的回應... 我想我要作的應該跟您的東西差不多... 我會研究看看的,謝謝!
stonys
初階會員


發表:64
回覆:111
積分:38
註冊:2002-09-28

發送簡訊給我
#8 引用回覆 回覆 發表時間:2003-10-30 18:41:28 IP:211.74.xxx.xxx 未訂閱
再請教一下...該如何得知目前Focus的handle呢? 例如:筆記本...
timhuang
尊榮會員


發表:78
回覆:1815
積分:1608
註冊:2002-07-15

發送簡訊給我
#9 引用回覆 回覆 發表時間:2003-10-31 17:53:41 IP:203.95.xxx.xxx 未訂閱
若是要自行找其他 window 的 handle , 可以使用 FindWindow, 若是要找目前 focus 的 window handle, 可以使用 GetForegroundWindow !!
系統時間:2024-05-21 5:16:41
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!