我有一个记事本 123.txt 。不在当前窗口。我想发送命令写入 abcd 。
用SendMessage函数怎么实现?
我用
HWND hwnd;
hwnd=::FindWindow(NULL,"123.txt - 记事本");
函数取得了句柄,请问,下来代码该如何写?
给源代码的加倍给分。
用SendMessage函数怎么实现?
我用
HWND hwnd;
hwnd=::FindWindow(NULL,"123.txt - 记事本");
函数取得了句柄,请问,下来代码该如何写?
给源代码的加倍给分。
解决方案 »
- h 264如何进行无损分割?
- ISNETWORKALIVE函数问题
- socket 接收 结构体不正常,能否将这个结构体形式改为别的,用Serialize(CArchive& ar)传送。
- 多语言支持组件LocNuke(国际通本地化核武器)
- CEdit的问题
- 如何使用C访问SYBASE数据库? 分可能不够,可以再加。在线等待中.....
- Visual C++ 的 OpenGL 编程
- 高分问题!!!!!
- 知道在mfc方面有没有象《windows高级编程》一样的高级编程书,,请高手指点!!!!
- BSTR的内存要不要Free---OCX中??
- 论C#+SQL+VC模型
- 哪位牛人能获取一下网页的输入框元素(表单),我膜拜,在线等
{
t = *( str + i );
if( t >= 'a' && t <= 'z' )
{
::SendMessage( hwnd, WM_KEYDOWN, ( WPARAM )( t + 0x20 ), 0x001f0001 );
}
else
{
::SendMessage( hwnd, WM_KEYDOWN, ( WPARAM )( t ), 0x001f0001 );
}
::SendMessage( hwnd, WM_CHAR, ( WPARAM )( t ), 0x001f0001 );
::SendMessage( hwnd, WM_KEYUP, ( WPARAM )( t ), 0xc01f0001 );
}
::SendMessage( hwnd, WM_KEYDOWN, ( WPARAM )( 13 ), 0x001f0001 );
::SendMessage( hwnd, WM_CHAR, ( WPARAM )( 13 ), 0x001f0001 );
::SendMessage( hwnd, WM_KEYUP, ( WPARAM )( 13 ), 0xc01f0001 );
HWND hNotePad = FindWindowEx( NULL, NULL, _T("Notepad"), _T("123.txt - 记事本"));if (hNotePad)
{
// 取Edit句柄
HWND hEdit = FindWindowEx(hNotePad, NULL, _T("Edit"), NULL);
if (hEdit)
{
// 取当前内容长度
LRESULT dwSize = SendMessage(hEdit, WM_GETTEXTLENGTH, 0L, 0L );
dwSize += lstrlen("abcd");
TCHAR* pszText = new TCHAR[dwSize+1]; // 取当前内容
SendMessage(hEdit, WM_GETTEXT, dwSize, (LPARAM)pszText); lstrcat(pszText, _T("abcd")); // 设置内容
SendMessage(hEdit, WM_SETTEXT, 0L, (LPARAM)pszText);
delete pszText;
}
}
提示 error C2660: 'SendMessageA' : function does not take 4 parameters
改成::SendMessage试试
int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance,
PSTR szCmdLine, int iCmdShow)
{
HWND hwnd;
HWND mainhwnd;
mainhwnd=::FindWindow("Notepad",NULL);
if(mainhwnd != NULL)
{
hwnd = ::FindWindowEx (mainhwnd, NULL, "Edit", NULL);
if (hwnd != NULL)
{
char str[] = "写到记事本";
::SendMessage (hwnd, WM_SETTEXT, NULL,(LPARAM)str);
::UpdateWindow (mainhwnd);
}
}
return 0;
}
HWND mainhwnd,hwnd;
mainhwnd=::FindWindow(NULL,_T("123.txt - 记事本")); //类名空,窗口名要加_T("")
hwnd = ::FindWindowEx (mainhwnd, NULL, "Edit", NULL);
CString str;
str=abcd;
::SendMessage (hwnd, WM_SETTEXT, NULL,(LPARAM)(LPCTSTR)str); //如果不是unicode(LPCSTR)
::UpdateWindow (mainhwnd);