看流星社区

 找回密码
 注册账号
查看: 3333|回复: 4

[Delphi] DLL中使用keybd_event 问题?

[复制链接]

该用户从未签到

发表于 2011-3-28 09:30:47 | 显示全部楼层 |阅读模式
procedure TForm1.Timer1Timer(Sender: TObject);  
begin  
    keybd_event(vk_F9,0,0,0);  
    keybd_event(vk_F9,0,KEYEVENTF_KEYUP,0);  
end;  

我在DLL里面有个窗口 把DLL注入到目标进程以后Timer1已经启动,(窗口内可以看到),但为什么发送F9没反映呢.我又写了个exe用同样的方法在exe里运行上面的Timer1,结果正常按下了,请问问题出在那?
function HookProc(nCode:Integer;WParam: WPARAM;LParam:LPARAM):LRESULT;stdcall;  
form1.Edit1.Text:=form1.Edit1.Text+' ¦'+inttostr(WParam);  
我在这里做了个记录结果真的没收到发出去的消息.为什么呢,这个消息要怎么处理呢?

该用户从未签到

发表于 2011-3-28 09:31:15 | 显示全部楼层
你为何不用postmessage?

该用户从未签到

发表于 2011-3-28 09:31:23 | 显示全部楼层
试下

  keybd_event(vk_F9,0,0,0);  
  sleep(50);
    keybd_event(vk_F9,0,KEYEVENTF_KEYUP,0);  
  sleep(50);

该用户从未签到

发表于 2011-3-28 09:31:33 | 显示全部楼层
你的目标程序要是游戏,可以这个游戏屏蔽了,模拟按键函数.

该用户从未签到

发表于 2011-3-28 09:31:45 | 显示全部楼层
楼上的好象说的不对,如果游戏屏蔽了模拟,那么楼主在EXE文件中也不可能实现模拟按键。
模拟按键必须是焦点窗口才行。你可以试试postmessage
点击按钮快速添加回复内容: 支持 高兴 激动 给力 加油 苦寻 生气 回帖 路过 感恩
您需要登录后才可以回帖 登录 | 注册账号

本版积分规则

小黑屋|手机版|Archiver|看流星社区 |网站地图

GMT+8, 2024-4-19 07:09

Powered by Kanliuxing X3.4

© 2010-2019 kanliuxing.com

快速回复 返回顶部 返回列表