HWND hWnd = ::FindWindow(_T("Notepad"), NULL);
if(hWnd)
{ CWnd *hEditEx =(CWnd)FindWindowEx(hWnd, NULL, _T("Edit"), NULL); HWND hEdit=hEditEx->GetSafeHwnd(); //if(hEdit) ::PostMessage(hWnd, WM_CHAR, 0x48, 0);//发送‘H’到notepad ::PostMessage(hWnd, WM_CHAR, 0x45, 0);//发送‘E’到notepad ::PostMessage(hWnd, WM_CHAR, 0x4C, 0);//发送‘L’到notepad ::PostMessage(hWnd, WM_CHAR, 0x4C, 0);//发送‘L’到notepad ::PostMessage(hWnd, WM_CHAR, 0x4F, 0);//发送‘O’到notepad
上面这段代码是我用来测试是否可以想记事本发送消息并显示在记事本上的,在网上你找到的。但是发现却不能送消息。数据不能显示在记事本上。这是怎么回事呢?那位大侠帮帮忙啊!
if(hWnd)
{ CWnd *hEditEx =(CWnd)FindWindowEx(hWnd, NULL, _T("Edit"), NULL); HWND hEdit=hEditEx->GetSafeHwnd(); //if(hEdit) ::PostMessage(hWnd, WM_CHAR, 0x48, 0);//发送‘H’到notepad ::PostMessage(hWnd, WM_CHAR, 0x45, 0);//发送‘E’到notepad ::PostMessage(hWnd, WM_CHAR, 0x4C, 0);//发送‘L’到notepad ::PostMessage(hWnd, WM_CHAR, 0x4C, 0);//发送‘L’到notepad ::PostMessage(hWnd, WM_CHAR, 0x4F, 0);//发送‘O’到notepad
上面这段代码是我用来测试是否可以想记事本发送消息并显示在记事本上的,在网上你找到的。但是发现却不能送消息。数据不能显示在记事本上。这是怎么回事呢?那位大侠帮帮忙啊!
不是hWnd,是hEdit吧?
UINT __cdecl ThreadProc(LPVOID lParam)
{
HWND hWnd = ::FindWindow(_T("Notepad"), NULL);
if(hWnd)
{
HWND hEdit = ::FindWindowEx(hWnd, NULL, _T("Edit"), NULL);
if(hEdit)
{
TCHAR buf[] = _T("Hello,World!");
TCHAR szTmp[2] = {0};
for(size_t i = 0; i != _tcslen(buf); ++i)
{
szTmp[0] = buf[i];
SendMessage(hEdit, EM_SETSEL, (WPARAM)-1, (LPARAM)-1);
SendMessage(hEdit, EM_REPLACESEL, 0, (LPARAM)(szTmp));
Sleep(500);
}
}
}
return 0;
}