凯路迪欧是神兽吗:在VC中寻找某个运行中的VB程序的某个文本框并改变其内容
来源:百度文库 编辑:高考问答 时间:2024/05/03 03:14:04
谢谢您的细心回答,不过现在没有办法调试,因为我用NSIS调用我所做的DLL时总出错(即使是一个空的DLL和一个空的函数),我试过用MFC静态库DLL和win32 DLL,都失败了。现在正在查阅有关如果为NSIS做插件的资料。
因为百度知道用得不熟,刚才才发现原来最多只能追加50分的,没有办法给您另外的加上一百分,对不起噢。
希望下次能够帮上您一点小忙。也不会要你的分噢!^_^
你的这个问题可以这样得到解决:
首先你要弄清楚vc的两个函数的用法:
FindWindow(LPCTSTR lpszClassName,
LPCTSTR lpszWindowName );
第二:HWND FindWindowEx(HWND hwndParent,
HWND hwndChildAfter,
LPCTSTR lpszClass,
LPCTSTR lpszWindow
);
两个函数的用法你可以查msdn,仔细的琢磨一下
现在我给出一个例子,希望你能得到启发。
void CFindDlg::OnB()
{
CWnd* pWnd = FindWindow(NULL,"form1");//假设vb窗体的caption是FORM1
if(pWnd!=NULL)
{
HWND pchild=FindWindowEx(pWnd->GetSafeHwnd(),NULL,"ThunderTextBox","Text1");//在这里要使用vc的spy++查
// 看textbox的类名以及其caption
//我这里的是ThunderTextBox以及text1
if (pchild!=0)
{
CWnd p;
p.Attach(pchild);
char BUF[512];
CString sPath="hehehehehehhehe";//改变的内容
lstrcpy(BUF,(LPCTSTR)sPath);
p.SendMessage(WM_SETTEXT,0,(LPARAM)BUF);
p.Invalidate(true);
p.Detach();
}
UpdateData(false);
}
}
你可以好好的试一试,还可以和我联系,祝你好运!