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

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 吃药 什么只能用一次 就无效了只有重新打开 才能再有效一次
...全文
53 4 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
「已注销」 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

1,222

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder Windows SDK/API
社区管理员
  • Windows SDK/API社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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