如何向非激活窗口模拟发送键盘消息?(100分)

  • 主题发起人 主题发起人 hzx317
  • 开始时间 开始时间
H

hzx317

Unregistered / Unconfirmed
GUEST, unregistred user!
如何向非激活窗口模拟发送键盘消息?
有人说用:SendMessage(w,WM_KEYDOWN,VK_TAB,0);,但似乎没用。
 
先用Findwindow查到窗体句柄
然后再用PostMessage 或 SendMessage
 
同意楼上的,
 
不行啊,_yzy_ 的方法早就试过了,比如一款游戏,按“W”键走路,但我用 PostMessage 或 SendMessage 向游戏窗口发送“W”键,游戏人物没有动。游戏窗口是激活的也不行,不知为何:(
 
贴出你的代码
 
不是你的代码的问题,是游戏的问题,用PostMessage 或 SendMessage是不行的,
只有hook。
 
我想也是这样,试了试,普通窗口可以接收,游戏就不行。hook 什么写,有例子吗?谢谢!
 
attachthreadinput
 
多动手!~
Edit1.Text 是非激活窗口的句柄
procedure TForm1.Button1Click(Sender: TObject);
var
ThreadID : Cardinal;
begin
ThreadID := GetWindowThreadProcessId(StrToInt(Edit1.Text), nil);
PostThreadMessage(ThreadID, WM_KEYDOWN, VK_TAB,0);
end;
 
这样也不行,需要的是控制人物的运动,不是向Edit1中
输入数据
 
我告诉你,如果那个游戏的保护很猛的话你是很难实现你的“理想”的。又:如果你的功力够深,就写个驱动,想怎样折腾都行。不过我估计你还没有达到这个功力,我也不行。祝你好运!!!
 
那问个问题,是和你的问题相反的,就是怎么从IE中的搜索栏(控件名不知道)中取得用户输入的内容
 
后退
顶部