能力值:
( LV12,RANK:250 )
|
-
-
2 楼
忘记说一句,如果直接修改不同进程的 父窗口(就是平时所谓的“窗口”,和“控件”相对)的标题 是可以成功的
如果不是进程上的问题,能否给个代码例子,如何在一个EXE中修改外进程窗口的标题,谢谢
|
能力值:
( LV12,RANK:250 )
|
-
-
3 楼
大家都觉得太简单吗?
为啥没有人解答……等待中
|
能力值:
(RANK:350 )
|
-
-
4 楼
精华区有篇类似的:
http://bbs.pediy.com/showthread.php?s=&threadid=18014
你再找找,好像还有1、2篇。
|
能力值:
( LV12,RANK:250 )
|
-
-
5 楼
thanks
|
能力值:
( LV12,RANK:250 )
|
-
-
6 楼
果然是进程的问题
不过,似乎远程分配内存麻烦了一点。还要手动远程释放……写成HOOK又太奢侈
|
能力值:
( LV12,RANK:250 )
|
-
-
7 楼
不行啊
远程分配地址、WriteProcessMemoery后
调用SendMessage……WM_SETTEXT 没反应
调用PostMessage……WM_SETTEXT GetLastError出现 0x487 错误
似乎上面的那种办法没法处理EDIT,只能用在LIST上
|
能力值:
( LV2,RANK:10 )
|
-
-
8 楼
好像直接用SetWindowText就可以吧。
|
能力值:
( LV12,RANK:250 )
|
-
-
9 楼
不知道SetWindowText怎么回事,又像试可以又像是不可以。
疑惑
|
能力值:
( LV13,RANK:420 )
|
-
-
10 楼
void CWINMINEDlg::OnOK()
{
// TODO: Add extra validation here
CWnd *pWnd=FindWindow("扫雷","扫雷");
if(!pWnd)
{
STARTUPINFO startInfo;
PROCESS_INFORMATION process_info;
memset(&process_info,0,sizeof(PROCESS_INFORMATION));
memset(&startInfo,0,sizeof(STARTUPINFO));
startInfo.cb=sizeof(STARTUPINFO);
startInfo.lpReserved=NULL;
startInfo.lpDesktop=NULL;
startInfo.lpReserved2=NULL;
startInfo.lpTitle=NULL;
startInfo.dwFlags=STARTF_FORCEOFFFEEDBACK;
startInfo.cbReserved2=0;
CreateProcess("c:\\windows\\system32\\winmine.exe",NULL,NULL,NULL,FALSE,
NORMAL_PRIORITY_CLASS,NULL,NULL,&startInfo,&process_info);
}
Sleep(1000);
pWnd=FindWindow("扫雷","扫雷");
CMenu* m_menu=pWnd->GetMenu()->GetSubMenu(0); //获得菜单指针
m_menu->AppendMenu(2,MF_STRING | MF_BYPOSITION,"增加的菜单");//增加一个菜单
pWnd->PostMessage(WM_COMMAND,m_menu->GetMenuItemID(11),(long)pWnd->m_hWnd);//向第十一菜单发送消息*/
/* HWND m_pWnd=::FindWindow(_T("#32770"),_T("扫雷英雄榜"));
if(m_pWnd)
{
::SetDlgItemText(m_pWnd,701,"1秒");
::SetDlgItemText(m_pWnd,703,"1秒");
::SetDlgItemText(m_pWnd,705,"1秒");
::SetDlgItemText(m_pWnd,704,"jhlqb");
::SetDlgItemText(m_pWnd,702,"jhlqb");
::SetDlgItemText(m_pWnd,706,"jhlqb");
}*/
Sleep(20);
CWnd* m_pWnd=pWnd->FindWindow(_T("#32770"),_T("扫雷英雄榜"));
if(m_pWnd)
{
m_pWnd->SetDlgItemText(701,"1秒");
m_pWnd->SetDlgItemText(703,"1秒");
m_pWnd->SetDlgItemText(705,"1秒");
m_pWnd->SetDlgItemText(704,"jhlqb");
m_pWnd->SetDlgItemText(702,"jhlqb");
m_pWnd->SetDlgItemText(706,"jhlqb");
m_pWnd->Invalidate();
}
/*CRegKey regkey;
regkey.Open(HKEY_CURRENT_USER,"SOFTWARE\\Microsoft\\winmine");
regkey.SetValue("jhlqb","Name1");
regkey.SetValue("jhlqb","Name2");
regkey.SetValue("jhlqb","Name3");
regkey.SetValue(1,"Time1");
regkey.SetValue(1,"Time2");
regkey.SetValue(1,"Time3");*/
}
今天写的一段代码,程序完成修改扫雷游戏的成绩单。看对你有用吗?当然后面注释起来的方法更好了!
|