求教啊,如何向另个窗口发送命令啊

owsxo 2004-10-19 09:59:00
我用findwindow()找到了窗口句柄,利用sendmessage()向该窗口发送命令,但是我发现好象那些消息怎么没有反映啊!我使用的是vc6.0里的工具spy++得到他的消息集的,是不是spy++得到的消息不包含非系统消息啊
...全文
186 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
chowcheng 2004-10-25
  • 打赏
  • 举报
回复
TO owsxo:
你所说的单进程是指什么啊?我可能明白你的意思:你是说这个函数只能在所在进程窗口是激活的时候可以便用是吧?我当时也同样有这个问题,解决的方法是做一个键盘钩子,然后你定一个激活你所设计的外挂的快捷键,就像完传奇啊,还有泡泡里的那些外挂一样,你运行了他并不代表你的模拟函数就要运行。比如我设计成按F10扣我的模拟函数才运行,不就行了吗?因为我的电脑没有上网,所以那些代码也懒得往网吧里带(输入麻烦),再说我以前做了一个帝国的外挂(当然是很简单的那一种),也不怎么成功,呵呵。。。。。。。。。。。。。。。。。。。所以。。。。。。。。。。。。
chowcheng 2004-10-22
  • 打赏
  • 举报
回复
TO owsxo
想操作键盘怎么能发送WM_CHAR消息啊?我觉得完全不可能实现,如果想按程序自动攻击,我想你应用模拟键盘的函数,keyboard_event
an_bachelor 2004-10-22
  • 打赏
  • 举报
回复
那就发WM_KEYDOWN看行不?
owsxo 2004-10-22
  • 打赏
  • 举报
回复
to chowcheng
不是啊,你说的那个函数是可以模拟键盘操作,不过,那个函数只是在单进程内使用啊,是向本进程的实例发送消息的。我现在要跨进程去发送消息,那个函数好象不可以使用哦。
如过你实现了的话,把你的代码发给我好吗?谢谢你了,我会给你很多分的!!
非常感谢大家的支持,希望大家多给点解决的方法啊!!
tlg007 2004-10-20
  • 打赏
  • 举报
回复
'a'
owsxo 2004-10-20
  • 打赏
  • 举报
回复
呵呵 各位大哥,小弟我在做冒险岛的外挂。想让我的人定位后站在那里出招就好了。我女友想玩那个游戏,叫我帮她练级,好歹咱也是学计算机的,就想自己做个外挂喽。
我做的不要界面的,呵呵,所以用的是控制台程序,因为不想发布,就做成单机的,每次用的时候就编译一下。代码如下:
#include "iostream.h"
#include "windows.h"
void main()
{
HWND hWnd;
hWnd = FindWindow(NULL,"????");//????表示的是那个游戏的caption
cout<<(DWORD)hWnd<<endl; //用于检测句柄是否正确,和spy++里的句柄对比
while(1)
{
if(getcher()!=27)
SendMessage(hWnd,WM_CHAR,"a",0);//在游戏里我设置a作攻击键,呵呵
else
break; //退出程序
}
}
可是我做的怎么都不成功呀,请指教。
owsxo 2004-10-20
  • 打赏
  • 举报
回复
还是不对啊
tlg007 2004-10-19
  • 打赏
  • 举报
回复
消息参数里用到本地指针了吧?
通常这样跨进程边界传递指针是
不可以的,除了WM_GETTEXT,
WM_SETTEXT等内置消息。

NT下VirtualAllocEx()给目标
进程分配虚拟页存储,SendMessage()
返回后ReadProcessMemory()才可以取到
你想读取的数据,最后别忘了VirtualFreeEx()
释放目标进程的虚拟页存储。
rfa 2004-10-19
  • 打赏
  • 举报
回复
你的程序和那“另一个窗体”是在同一个进程当中吗?如果不是就不成了
kugou123 2004-10-19
  • 打赏
  • 举报
回复
楼主想发什么类型的消息?
chowcheng 2004-10-19
  • 打赏
  • 举报
回复
发送到其它窗口的消息怎么可以在本地窗口中有OnCopyData消息处理函数啊?
huwei001982 2004-10-19
  • 打赏
  • 举报
回复
用 SendMessage 也可以的, 比如发送 SendMessage(WM_CLOSE, 0, 0); 可以把它关掉

关键是看你发送的是什么消息, 以及句柄是否正确
DentistryDoctor 2004-10-19
  • 打赏
  • 举报
回复
其它程序的窗口?向它发关WM_COPYDATA吧,在OnCopyData中处理吧。
oyljerry 2004-10-19
  • 打赏
  • 举报
回复
SendMessage可以发送各种命令
Mr-Chen 2004-10-19
  • 打赏
  • 举报
回复
SendMessage(glhOutputWnd,WM_SETTEXT,0,(LPARAM)(LPCTSTR)szText);

2,641

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 硬件/系统
社区管理员
  • 硬件/系统社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧