MFC读取了ini文件内容到一个字符串,我该怎样关联一个已打开记事本进程并用消息机制将字符串一个一个字符的在记事本上显示出来? 我对MFC了解不多,请各位高手指点下,先谢谢了…… 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 GetPrivateProfileString()得到内容。然后写入notepad中。TCHAR buf[XXXX] = {0};GetPrivateProfileString(...,buf,...);HWND hWnd = ::FindWindow(_T("Notepad"), NULL); if(hWnd) { HWND hEdit = ::FindWindowEx(hWnd, NULL, _T("Edit"), NULL); if(hEdit) { ::SendMessage(hEdit, WM_SETTEXT, 0, (LPARAM)buf); } } 谢谢 VisualEleven(Eleven[兔子党组织部长]),但是我还忘说了一点,就是在写入字符时要给写入进程加一个延时让人看到字符一个一个写入的效果,能实现不?给点提示哈 CString section; CString filepath; TCHAR buf[1000]; filepath=CIniTestDlg::m_filepath ; int sum=::GetPrivateProfileInt(TEXT("RecordSum"), //取section的数目 TEXT("sum"), NULL, TEXT(filepath)); for(int i=0;i<sum;i++) { section.Format( "Info%d",i);//要获取的section ::GetPrivateProfileString(section, TEXT("code"), TEXT("Not Exit this Key!"), buf, sizeof(buf), TEXT(filepath)); HWND hWnd = ::FindWindow(_T("Notepad"), NULL); if(hWnd) { HWND hEdit = ::FindWindowEx(hWnd, NULL, _T("Edit"), NULL); if(hEdit) { ::SendMessage(hEdit, WM_SETTEXT, 0, (LPARAM)buf); } }我把你的代码加到我的程序中了,但是每次取出的section内容都把上一个section的内容覆盖了,请问怎么才不然内容覆盖?还有如果我打开了多个记事本,怎么确定我要写入的记事本呢?或者如果我把字符写在另一个程序(如另外的MFC程序)呢?是不是需要获取这个程序的进程ID之类的?请各位指点一二谢谢啦 UINT __cdecl ThreadProc(LPVOID lParam){ TCHAR buf[] = _T("Hello, World!"); HWND hWnd = ::FindWindow(_T("Notepad"), NULL); if(hWnd) { HWND hEdit = ::FindWindowEx(hWnd, NULL, _T("Edit"), NULL); if(hEdit) { TCHAR szText[2] = {0}; for(size_t i=0; i<_tcslen(buf); i++) { szText[0] = buf[i]; int nLen = ::SendMessage(hEdit, WM_GETTEXTLENGTH, 0, 0) + 1; ::SendMessage(hEdit, EM_SETSEL, nLen, nLen); ::SendMessage(hEdit, EM_REPLACESEL, (WPARAM)TRUE, (LPARAM)szText); Sleep(500); } } } return 0;} HWND hWnd = ::FindWindow(_T("Notepad"), NULL);::GetWindowText(hWnd,buf,MAX_PATH);if(strcmp(buf,"MyWnd.txt") == 0){ MessageBox("这是我要发送消息的窗口");}else{ MessageBox("这不是我要关心的窗口");} 灰常感谢 VisualEleven(Eleven[兔子党组织部长]),问题已解决 windows登录时会发出什么消息吗?我可以检测到吗? 如何取本机的网络设置如ip地址、网关等? 请问如何检测某个程序启动的所在路径? 删除树的同时如何释放内存 关于call _chkesp. opengl中有画一个一个点的函数吗 为何绘图会全屏闪一下? 关于Dialog bar的一个问题(好难过啊)!!! 简单问题 CRichEdit问题????????????? 有办法将我的一个debug版的lib文件返回到cpp文件吗?急! 请教一个模板类的问题 对话框问题~
TCHAR buf[XXXX] = {0};
GetPrivateProfileString(...,buf,...);
HWND hWnd = ::FindWindow(_T("Notepad"), NULL);
if(hWnd)
{
HWND hEdit = ::FindWindowEx(hWnd, NULL, _T("Edit"), NULL);
if(hEdit)
{
::SendMessage(hEdit, WM_SETTEXT, 0, (LPARAM)buf);
}
}
CString filepath;
TCHAR buf[1000]; filepath=CIniTestDlg::m_filepath ;
int sum=::GetPrivateProfileInt(TEXT("RecordSum"), //取section的数目
TEXT("sum"),
NULL,
TEXT(filepath));
for(int i=0;i<sum;i++)
{
section.Format( "Info%d",i);//要获取的section
::GetPrivateProfileString(section,
TEXT("code"),
TEXT("Not Exit this Key!"),
buf,
sizeof(buf),
TEXT(filepath)); HWND hWnd = ::FindWindow(_T("Notepad"), NULL);
if(hWnd)
{
HWND hEdit = ::FindWindowEx(hWnd, NULL, _T("Edit"), NULL);
if(hEdit)
{
::SendMessage(hEdit, WM_SETTEXT, 0, (LPARAM)buf);
}
}
我把你的代码加到我的程序中了,但是每次取出的section内容都把上一个section的内容覆盖了,请问怎么才不然内容覆盖?
还有如果我打开了多个记事本,怎么确定我要写入的记事本呢?或者如果我把字符写在另一个程序(如另外的MFC程序)呢?是不是需要获取这个程序的进程ID之类的?请各位指点一二谢谢啦
{
TCHAR buf[] = _T("Hello, World!");
HWND hWnd = ::FindWindow(_T("Notepad"), NULL);
if(hWnd)
{
HWND hEdit = ::FindWindowEx(hWnd, NULL, _T("Edit"), NULL);
if(hEdit)
{
TCHAR szText[2] = {0};
for(size_t i=0; i<_tcslen(buf); i++)
{
szText[0] = buf[i];
int nLen = ::SendMessage(hEdit, WM_GETTEXTLENGTH, 0, 0) + 1;
::SendMessage(hEdit, EM_SETSEL, nLen, nLen);
::SendMessage(hEdit, EM_REPLACESEL, (WPARAM)TRUE, (LPARAM)szText);
Sleep(500);
}
}
}
return 0;
}
::GetWindowText(hWnd,buf,MAX_PATH);
if(strcmp(buf,"MyWnd.txt") == 0)
{
MessageBox("这是我要发送消息的窗口");
}
else
{
MessageBox("这不是我要关心的窗口");
}