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

傳送中文字串到 Dos Console 模式

 
HipHopRover
一般會員


發表:4
回覆:0
積分:0
註冊:2004-01-06

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-01-29 01:48:13 IP:211.76.xxx.xxx 未訂閱
HWND npad,h;  char Token1[128];  UINT AWORD;  char ANSCIISym=0x80;     npad=FindWindow(NULL,"C:\\Windows\\System32\\Cmd.exe");     if ( npad != 0 )     {      h=ChildWindowFromPoint(npad,Point(2,2));         if ( h != 0 )         {          strcpy(Token1,Msg->Text.c_str());             for ( int i=0 ; iText.Length() ; i ) { // 整段程式的重點在這,因為只能送 WM_CHAR 進去。 // 我直接將 Token1 這個陣列的值送出,會有問題。 // 所以要經過特別的處理。 ( 對於大於 0x80 的數值做處理) // 至於為什麼要這樣處理,我個人的想法是 : // UINT 的強制轉換,導致 Char 轉到 UINT 出錯 // 所以我用人工轉換,將大於 ANSCII 定義的基本字元值的數值取出做處理。 // 記得在計算的時候,要用 byte 去強制轉換後再做 logic 運算 if ( byte(Token1[i]) > ANSCIISym ) { // 取出前 4 bits AWORD=byte(Token1[i])&byte(0xF0); // 取出後 4 btis 和前 4 bits 做相加 AWORD=AWORD UINT(byte(Token1[i])&byte(0x0F)); // 送出處理過的數值 SendMessage(npad,WM_CHAR,AWORD,NULL); } else SendMessage(npad,WM_CHAR,Token1[i],NULL); } // 送出 Enter SendMessage(npad,WM_CHAR,VK_RETURN,NULL); } }
系統時間:2024-07-04 4:53:11
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!