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

SendMessage 如何傳送中文

尚未結案
Ming Lin
一般會員


發表:27
回覆:53
積分:21
註冊:2003-04-15

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-05-28 13:55:08 IP:220.130.xxx.xxx 未訂閱
請問一下  我現在可以用SendMessage來傳送英文到我想要的Handle 但我要如何才能傳送中文呢?? 還有如這些特殊符號 ⊙↑▼ 以及泰文 韓文 日文 ??  請教教我吧 謝謝嚕~
yachanga
資深會員


發表:23
回覆:335
積分:296
註冊:2003-09-27

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-05-28 17:22:52 IP:210.68.xxx.xxx 未訂閱
Hi Ming Lin您好: 一點建議 參考一下 http://delphi.ktop.com.tw/topic.php?TOPIC_ID=50620    若真的找不到, 用Unicode元件吧~        ~悠遊法國號~
jest0024
高階會員


發表:11
回覆:310
積分:224
註冊:2002-11-24

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-05-28 19:01:49 IP:211.74.xxx.xxx 未訂閱
傳遞其他應用程式,可以用WM_COPYDATA訊息! 學而時習之不亦樂乎!
Ming Lin
一般會員


發表:27
回覆:53
積分:21
註冊:2003-04-15

發送簡訊給我
#4 引用回覆 回覆 發表時間:2004-06-01 09:21:22 IP:220.130.xxx.xxx 未訂閱
不好意思 請問WM_COPYDATA如何用呢 請給我個簡單的程式碼 (已收尋過)
jest0024
高階會員


發表:11
回覆:310
積分:224
註冊:2002-11-24

發送簡訊給我
#5 引用回覆 回覆 發表時間:2004-06-02 13:19:44 IP:210.66.xxx.xxx 未訂閱
引言: 不好意思 請問WM_COPYDATA如何用呢 請給我個簡單的程式碼 (已收尋過)
引述Win32 SDK HELP The WM_COPYDATA message is sent when an application passes data to another application. WM_COPYDATA wParam = (WPARAM) (HWND) hwnd; // handle of sending window lParam = (LPARAM) (PCOPYDATASTRUCT) pcds; // pointer to structure with data Parameters hwnd Identifies the window passing the data. pcds Points to a COPYDATASTRUCT structure that contains the data to be passed. Return Values If the receiving application processes this message, it should return TRUE; otherwise, it should return FALSE. 使用SendMessage傳送一個COPYDATASTRUCT的型態的資料. ABCD分開看的懂,連起來像鬼劃符~~!!!
Ming Lin
一般會員


發表:27
回覆:53
積分:21
註冊:2003-04-15

發送簡訊給我
#6 引用回覆 回覆 發表時間:2004-06-02 16:13:46 IP:220.130.xxx.xxx 未訂閱
恩~不好意思呢 我查了一下WM_COPYDATA的用法 好像接收端也要是自己的程式  請問 要如何傳非自己寫的程式呢 如記事本
jest0024
高階會員


發表:11
回覆:310
積分:224
註冊:2002-11-24

發送簡訊給我
#7 引用回覆 回覆 發表時間:2004-06-03 17:23:59 IP:211.74.xxx.xxx 未訂閱
引言: 恩~不好意思呢 我查了一下WM_COPYDATA的用法 好像接收端也要是自己的程式 請問 要如何傳非自己寫的程式呢 如記事本 >< face="Verdana, Arial, Helvetica"> 如yachanga大大說的EM_REPLACESEL訊息 但是要傳筆記本,並非找出筆記本的Handle,而是找出筆記本中Edit的代碼傳送
int dc = FindWindowEx(FindWindow('Notepad',nil),0,'Edit',0);
                                  ^筆記本Class     ^筆記本的Edit Class
ABCD分開看的懂,連起來像鬼劃符~~!!! 發表人 - jest0024 於 2004/06/03 17:29:35
james2mac
一般會員


發表:11
回覆:11
積分:4
註冊:2008-02-01

發送簡訊給我
#8 引用回覆 回覆 發表時間:2010-01-30 10:16:08 IP:218.210.xxx.xxx 訂閱
試看看

s:='測試';
SendMessage(h1, WM_SETTEXT,0,longint(PCHAR(S)));
ys168
初階會員


發表:3
回覆:24
積分:25
註冊:2005-10-14

發送簡訊給我
#9 引用回覆 回覆 發表時間:2010-05-30 11:35:15 IP:118.165.xxx.xxx 訂閱

[code cpp]
我用過大概如下: 是否可以?

AnsiString st;
void __fastcall TForm1::ApplicationEvents1Idle(TObject *Sender, bool &Done)
{
HWND ForeWindow = ::GetForegroundWindow();
if(ForeWindow != Handle)
{
LastEditHandle = ForeWindow;
char str[255];
SendMessage(LastEditHandle, WM_GETTEXT, 255, (long)str);
st =AnsiString("傳送到 - ") str;
}
}
//---------------------------------------------------------------------------
void __fastcall TForm1::?MouseUp(TObject *Sender,
TMouseButton Button, TShiftState Shift, int X, int Y)
{
HWND hFocusWin;

if(!IsWindow(LastEditHandle)) return;
if( IsZoomed(LastEditHandle) )
ShowWindow(LastEditHandle, SW_SHOWMAXIMIZED); // 若是最大化, 就最大化顯示
else
ShowWindow(LastEditHandle, SW_SHOWNORMAL); // 不然就直接顯示
SystemParametersInfo(SPI_SETFOREGROUNDLOCKTIMEOUT, 0, 0, SPIF_SENDCHANGE);
BringWindowToTop(LastEditHandle);
if( AttachThreadInput(GetCurrentThreadId(), GetWindowThreadProcessId(LastEditHandle, NULL), true) )
{
BringWindowToTop(LastEditHandle);
Application->ProcessMessages();
hFocusWin = GetFocus();
AttachThreadInput(GetCurrentThreadId(), GetWindowThreadProcessId(LastEditHandle, NULL), false);
if( hFocusWin != NULL )
{
int i;
Byte ch;
AnsiString str = //要傳送的AnsiString 相關字串;
for( i = 1; i <= str.Length(); i ) // 注意: 是從 1 開始, 不是從 0 開始
{
ch = Byte(str[i]);
if( IsDBCSLeadByte(ch) ) // 若是雙位元的字, 就和下一個byte合成一個字
PostMessage(hFocusWin, WM_IME_CHAR, MAKEWORD(Byte(str[ i]), ch), 0);
else // 不然就直接送出
PostMessage(hFocusWin, WM_IME_CHAR, WORD(ch), 0);
}
}
else
ShowMessage("GetFocus() failed!");
}
else
ShowMessage("AttachThreadInput() failed!!");
}
//---------------------------------------------------------------------------
[/code]

------
yangshuh
系統時間:2017-10-23 9:00:06
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!