返回信息流如何通过点击下一个button1这个按钮,把上面那个窗口中的按钮或者输入框去掉。
这是两个不同的程序。
这是一条镜像帖。来源:北邮人论坛 / cpp / #18599同步于 2009/1/12
该镜像源已超过 30 天没有更新,可能在源站已被删除。
CPP机器人发帖
如何通过另一个程序修改一个进程窗口
xazs001
2009/1/12镜像同步11 回复
订阅后,新回复会通过你的通知中心匿名送达。
9 条回复
进程间的通信吧
管道、共享内存、或者文件都行。
比如在运行第一个程序的时候,把pid写入文件(fopen(pd, w)),
第二个程序运行起来,在button 的消息下,去上面的文件目录读文件,如果文件存在,读到pid把第一个窗口关了,然后新建进程运行第一个程序并参数进去。
第一个程序判断传入的参数,判断是否显示。
当然这会造成闪一下,管道的话应该更好。
要修改的程序是自己编的吗?如果是的话可以用进程间通信。
如果不是的话。
用vs 2005自带的spy++
用findwindow找到这个主窗口的句柄,然后再通过资源ID得到子窗口的句柄。
获得这个编辑框的句柄。然后可以对这个编辑框进行操作
【 在 wanlxp 的大作中提到: 】
: 要修改的程序是自己编的吗?如果是的话可以用进程间通信。
: 如果不是的话。
: 用vs 2005自带的spy++
: ...................
sendmessage
【 在 wanlxp 的大作中提到: 】
: 要修改的程序是自己编的吗?如果是的话可以用进程间通信。
: 如果不是的话。
: 用vs 2005自带的spy++
: ...................
就这两个窗口来说是自己编的,但最终是想修改别人的窗口。
spy++没用过,我在vc6下编的。
【 在 nobody 的大作中提到: 】
: 进程间的通信吧
: 管道、共享内存、或者文件都行。
: 比如在运行第一个程序的时候,把pid写入文件(fopen(pd, w)),
: ...................
第二个程序把第一个窗口关了后,再创建一个进程,这时第一个程序需要判断哪些参数
【 在 xazs001 的大作中提到: 】
: 就这两个窗口来说是自己编的,但最终是想修改别人的窗口。
: spy++没用过,我在vc6下编的。
这个是我编的获得VS房间消息所用的richedit控件的内容的一段代码,vsMessage为编辑框内容,LZ可以参考,如果要进行其它的操作的话发送其它的消息就行了
HWND pwnd=::FindWindow(NULL,"VS竞技游戏平台 -- 正式版-2.5.3");
HWND HD_Child1=::GetDlgItem(pwnd,0x0000049A);
HWND HD_Child2=::GetDlgItem(HD_Child1,0x0000049B);
HWND HD_Child3=::GetDlgItem(HD_Child2,0x00000000);
HWND hEdit=::GetDlgItem(HD_Child3,0x000004AD);
if(hEdit)
{
//找到控件,处理进行相应处理
char str[655000];
::SendMessage(hEdit,WM_GETTEXT,10000,(LPARAM)str);
VsMessage=str;
return 1;
}
else
return 0;
【 在 wanlxp 的大作中提到: 】
: 这个是我编的获得VS房间消息所用的richedit控件的内容的一段代码,vsMessage为编辑框内容,LZ可以参考,如果要进行其它的操作的话发送其它的消息就行了
: HWND pwnd=::FindWindow(NULL,"VS竞技游戏平台 -- 正式版-2.5.3");
: HWND HD_Child1=::GetDlgItem(pwnd,0x0000049A);
: ...................
其中0x0000049B等是用spy++获得的资源ID
VS竞技游戏平台 -- 正式版-2.5.3 是窗口标题
只要修改SendMessage就可以进行其它的操作了。
【 在 xazs001 的大作中提到: 】
: 就这两个窗口来说是自己编的,但最终是想修改别人的窗口。
: spy++没用过,我在vc6下编的。
HWND pwnd=::FindWindow(NULL,"VS竞技游戏平台 -- 正式版-2.5.3");
HWND HD_Child1=::GetDlgItem(pwnd,0x0000049A);
HWND HD_Child2=::GetDlgItem(HD_Child1,0x0000049B);
HWND HD_Child3=::GetDlgItem(HD_Child2,0x00000000);
HWND hEdit=::GetDlgItem(HD_Child3,0x000004AD);
if(hEdit)
{
//找到控件,处理
::ShowWindow(hEdit,SW_HIDE);
return 1;
}
else
return 0;
下面这一段代码可以把VS的房间消息的编辑框给隐藏,spy++ 可以从网上找找怎么用,