如何模拟输入中文??? 类似中文输入法,要把指定的中文发送到其他窗口中,比如记事本,用SendInput似乎只能模拟英文? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 不好意思,应该是WM_CHAR消息。 用SendMessage发消息的方法不太好吧,因为必须先获取要发送到的窗口的句柄,比较麻烦。 WM_IME_CHAR ::SendMessage(hwnd, WM_IME_CHAR, '中', 0);hwnd为可输入的窗口句柄,结果是输入了一个"中"字。 keybd_event也可以,但比较麻烦http://topic.csdn.net/t/20030826/12/2188458.html 不麻烦, HWND hNotepad = FindWindow(_T("Notepad"), NULL);POINT pt; pt.x = pt.y = 20;HWND hEdit = ChildWindowFromPoint(hNotepad, pt);然后用hEdit去sendmessage就行了.还可以枚举, 办法挺多的. keybd_event就好了,不用去管焦点窗口时哪个 如果是unicode程序,那么你使用wm_char发送中文和英文是一致的。 //如果是非unicode工程,可以如此操作 t = *( str + i ); e = *( str + i + 1 ); if( ( unsigned char )t >= 0xa0 && ( unsigned char )e >= 0xa0 ) { WPARAM a; a = ( unsigned char )e; a <<= 8; a += ( unsigned char )t; // 汉字 ::SendMessage( hwnd, WM_CHAR, ( WPARAM )a, 0x00000001 ); i++; } else { ::SendMessage( hwnd, WM_CHAR, ( WPARAM )( t ), 0x001f0001 ); }//这是俺的程序的一部分,只是简单判断了一下中文,具体使用时要注意。 [directshow]samples下的filters编译 CRecordset not found in m_pDatabase->m_listRecordsets,这个警告如何解决 关于在vc中使用 CRecordSet::GetFieldValue 兩個進程這間共享記憶體,並且發消息的例程有沒有,最好給我一份 急 这样也会出错,我快要发疯了! 高价求康银(或其他)的MPEG-4卡的WINDOWS上的全套软件代码或程序 各位大侠,一个关于多文档程序子窗口如何最大化的问题 什么选中对象 在OnInitDialog()中弹出模态对话框 莫名其妙的missing ';' richedit内容
::SendMessage(hwnd, WM_IME_CHAR, '中', 0);
hwnd为可输入的窗口句柄,结果是输入了一个"中"字。
keybd_event也可以,但比较麻烦http://topic.csdn.net/t/20030826/12/2188458.html
HWND hNotepad = FindWindow(_T("Notepad"), NULL);
POINT pt;
pt.x = pt.y = 20;
HWND hEdit = ChildWindowFromPoint(hNotepad, pt);
然后用hEdit去sendmessage就行了.
还可以枚举, 办法挺多的.
t = *( str + i );
e = *( str + i + 1 ); if( ( unsigned char )t >= 0xa0 && ( unsigned char )e >= 0xa0 )
{
WPARAM a;
a = ( unsigned char )e;
a <<= 8;
a += ( unsigned char )t;
// 汉字
::SendMessage( hwnd, WM_CHAR, ( WPARAM )a, 0x00000001 );
i++;
}
else
{
::SendMessage( hwnd, WM_CHAR, ( WPARAM )( t ), 0x001f0001 );
}
//这是俺的程序的一部分,只是简单判断了一下中文,具体使用时要注意。