請問如何得知Ctrl C +Ctrl V已經完整的複製好文字?? |
尚未結案
|
qubeley2004
一般會員 發表:52 回覆:71 積分:24 註冊:2004-07-13 發送簡訊給我 |
因為要複製pdf上面的文字,我是使用Ctrl C + Ctrl V和AcroPDFLib_OCX去模擬 原本在於Ctrl C 和 Ctrl後面加上一個轉換到另外一個form的指令,可是變成 還沒有複製好文字就已經轉換過去了.. 請問要如何讓他知道Ctrl C +Ctrl V已經完整的複製好了呢??
void __fastcall TfmPdf::N1Click(TObject *Sender) { AcroPDF1->SetFocus(); keybd_event(VK_CONTROL, 0, 0, 0); // 按下 Ctrl keybd_event(65, 0, 0, 0); // 按下 A Sleep(10); keybd_event(65, 0, KEYEVENTF_KEYUP, 0); // 放開 A keybd_event(VK_CONTROL, 0, KEYEVENTF_KEYUP, 0); // 放開 Ctrl Sleep(10); keybd_event(VK_CONTROL, 0, 0, 0); // 按下 Ctrl keybd_event(67, 0, 0, 0); // 按下 C keybd_event(67, 0, KEYEVENTF_KEYUP, 0); // 放開 C keybd_event(VK_CONTROL, 0, KEYEVENTF_KEYUP, 0); // 放開 Ctrl Sleep(10); form1->Show(); } |
s1937kk
一般會員 發表:2 回覆:15 積分:8 註冊:2004-11-15 發送簡訊給我 |
你好,這樣的變通方式或許可行吧^^"
請參考看看...
#include "Clipbrd.hpp"//引入標頭檔
void __fastcall TfmPdf::N1Click(TObject *Sender) { int iTimeOut = 0; Clipboard()->Clear();//清空剪貼簿 AcroPDF1->SetFocus(); keybd_event(VK_CONTROL, 0, 0, 0); // 按下 Ctrl keybd_event(65, 0, 0, 0); // 按下 A Sleep(10); keybd_event(65, 0, KEYEVENTF_KEYUP, 0); // 放開 A keybd_event(VK_CONTROL, 0, KEYEVENTF_KEYUP, 0); // 放開 Ctrl Sleep(10); keybd_event(VK_CONTROL, 0, 0, 0); // 按下 Ctrl keybd_event(67, 0, 0, 0); // 按下 C keybd_event(67, 0, KEYEVENTF_KEYUP, 0); // 放開 C keybd_event(VK_CONTROL, 0, KEYEVENTF_KEYUP, 0); // 放開 Ctrl Sleep(10); while (Clipboard()->HasFormat(CF_TEXT) == false)//判斷剪貼簿內容是否為文字格式 { Application->ProcessMessages(); Sleep(50); if (iTimeOut > 50)//逾時 { ShowMessage("複製發生錯誤!"); break; } iTimeOut ; } form1->Show(); }發表人 - s1937kk 於 2005/07/07 21:11:02 發表人 - s1937kk 於 2005/07/07 21:14:07 |
qubeley2004
一般會員 發表:52 回覆:71 積分:24 註冊:2004-07-13 發送簡訊給我 |
引言: 你好,這樣的變通方式或許可行吧^^" 請參考看看... #include "Clipbrd.hpp"//引入標頭檔哈~原來還可以這樣使用~~ 謝謝您的方法,我把時間調大再加上一個Application->ProcessMessages(); 於我後面的程式碼就可以使用了,感謝~void __fastcall TfmPdf::N1Click(TObject *Sender) { int iTimeOut = 0; Clipboard()->Clear();//清空剪貼簿 AcroPDF1->SetFocus(); keybd_event(VK_CONTROL, 0, 0, 0); // 按下 Ctrl keybd_event(65, 0, 0, 0); // 按下 A Sleep(10); keybd_event(65, 0, KEYEVENTF_KEYUP, 0); // 放開 A keybd_event(VK_CONTROL, 0, KEYEVENTF_KEYUP, 0); // 放開 Ctrl Sleep(10); keybd_event(VK_CONTROL, 0, 0, 0); // 按下 Ctrl keybd_event(67, 0, 0, 0); // 按下 C keybd_event(67, 0, KEYEVENTF_KEYUP, 0); // 放開 C keybd_event(VK_CONTROL, 0, KEYEVENTF_KEYUP, 0); // 放開 Ctrl Sleep(10); while (Clipboard()->HasFormat(CF_TEXT) == false)//判斷剪貼簿內容是否為文字格式 { Application->ProcessMessages(); Sleep(50); if (iTimeOut > 50)//逾時 { ShowMessage("複製發生錯誤!"); break; } iTimeOut ; } form1->Show(); }發表人 - s1937kk 於 2005/07/07 21:11:02 發表人 - s1937kk 於 2005/07/07 21:14:07 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |