from www.vckbase.com
如何将字符发送到记事本或其它程序中
(yu_hl发表于2001-8-16 13:28:58)
HWND hWnd = ::FindWindow( "Notepad ", NULL);
if(hWnd)
{
HWND hEdit = FindWindowEx(hWnd, NULL, "Edit ", NULL);
if(hEdit)
::PostMessage(hEdit, WM_CHAR, 0x41, 0);//发送‘A’到notepad
} 这ASCII编码就行了, 中文呢? 需要GB2312? 手中没有,往哪查呢?
如何将字符发送到记事本或其它程序中
(yu_hl发表于2001-8-16 13:28:58)
HWND hWnd = ::FindWindow( "Notepad ", NULL);
if(hWnd)
{
HWND hEdit = FindWindowEx(hWnd, NULL, "Edit ", NULL);
if(hEdit)
::PostMessage(hEdit, WM_CHAR, 0x41, 0);//发送‘A’到notepad
} 这ASCII编码就行了, 中文呢? 需要GB2312? 手中没有,往哪查呢?
HWND hNotepad = ...;::OpenClipboard(hNotepad);
EmptyClipboard();
char *ch = "中华人民共和国";
HGLOBAL hglbCopy = GlobalAlloc(GMEM_MOVEABLE, strlen(ch));
char *lptstrCopy = (char *)GlobalLock(hglbCopy);
strcpy(lptstrCopy, ch);
GlobalUnlock(hglbCopy);
SetClipboardData(CF_TEXT, hglbCopy); ::BringWindowToTop(hNotepad);
keybd_event(VK_CONTROL, 0, KEYEVENTF_EXTENDEDKEY, 0);
keybd_event('V', 0, KEYEVENTF_EXTENDEDKEY, 0);
keybd_event('V', 0, KEYEVENTF_EXTENDEDKEY|KEYEVENTF_KEYUP, 0);
keybd_event(VK_CONTROL, 0, KEYEVENTF_EXTENDEDKEY|KEYEVENTF_KEYUP, 0);CloseClipboard();
if(hWnd)
{
HWND hEdit = FindWindowEx(hWnd, NULL, "Edit ", NULL);
if(hEdit)
for(int i = 0; i < strlen(ch); i ++ )
::PostMessage(hEdit, WM_CHAR, *(ch+i), 0);//发送‘A’到notepad
}
if(hWnd)
{
HWND hEdit = FindWindowEx(hWnd, NULL, "Edit ", NULL);
if(hEdit)
::SetWindowText( m_edit.m_hWnd, ch );
}
if(hWnd)
{
HWND hEdit = FindWindowEx(hWnd, NULL, "Edit ", NULL);
if(hEdit)
::SetWindowText( hEdit , ch );
}
if(hWnd)
{
HWND hEdit = FindWindowEx(hWnd, NULL, "Edit ", NULL);
if(hEdit)
::SendMessage( hEdit, WM_SETTEXT, 0, ch );
}
是对了, 呵呵, 最后一问, 怎么发送回车过去? 键值是多少了? 0x??