模拟键盘事件 源码分析 为什么 只模拟一次 也后就无效了

rokyo 2002-12-25 10:09:58
具体源码
void __fastcall TForm1::Timer2Timer(TObject *Sender)
{ String nBlue,nTE;
nBlue=(Form1->Edit2->Text);
HWND WndHandle;
unsigned long lBase;
unsigned long pId;
unsigned char pBuffer[240];
DWord nRead;
nRead=2;
lBase=0x03194F24;
HANDLE hProcess;
WndHandle = FindWindow(NULL,"欢迎您来到N-age世界");
GetWindowThreadProcessId(WndHandle,&pId);
hProcess=OpenProcess(PROCESS_ALL_ACCESS, False,pId);
ReadProcessMemory(hProcess,(LPCVOID)lBase,pBuffer,1,&nRead);


Edit1->Text=pBuffer[0];
nTE=(Form1->Edit1->Text);
CloseHandle(hProcess);
if (nTE<nBlue)
keybd_event(49,0,0,0);


}
我再游戏中想当生命小了以后键盘自动按下1 吃药 什么只能用一次 就无效了只有重新打开 才能再有效一次
...全文
6 点赞 收藏 4
写回复
4 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
「已注销」 2002-12-25
键盘按下务必得抬起

否则会发生出人意料的结果

试试吧
回复
qin_wei 2002-12-25
是不是没抬起的原因?用下面两句的实验一下。
keybd_event(49,49,0,0 );
keybd_event(49,49,KEYEVENTF_KEYUP,0 );
顺便问一下,请问访问一个进程的memory时怎么才能知道它的从那段地址开始
是有效数据或者是可读的
就象你写的lBase=0x03194F24;你怎么知道他是你想要的地址
回复
wyouken 2002-12-25
我用金山游侠查的
回复
qin_wei 2002-12-25
up
回复
相关推荐
发帖
Windows SDK/API
创建于2007-08-02

1205

社区成员

C++ Builder Windows SDK/API
申请成为版主
帖子事件
创建了帖子
2002-12-25 10:09
社区公告
暂无公告