本人现在正在玩快乐西游,想自己动手做个按键精灵之类的完成了一小部分,就是在游戏窗口激活的情况下,用keybd_event给它虚拟按键那么能不能在游戏窗口非激活状态下给它模拟按键呢?通过WindowFromPoint找到窗口句柄,然后
postmessage(hwnd,wm_char,ord('A'),0)
但是,游戏没响应:(猜测是:
1、接收输入的不是此窗口句柄,那么,会是哪个?
2、消息类型写错
3、发送方式不对请高手帮忙:
1、怎么获得当前接受输入的句柄或其他什么
2、这类游戏窗口,怎么在非激活情况下模拟按键?解决了后再奉献100分

解决方案 »

  1.   

    perform??
    不懂
    perform 我只有这样用过,就是本窗体perform一个message相当于系统向他发送了一个msg
    但是现在游戏本身不能改,怎么perform呢?
      

  2.   

    用wm_settext呢?
    procedure TForm1.Button1Click(Sender: TObject);
    var
      s: string;
    begin
      s:= 'kgb';
      sendmessage($206e2,WM_SETTEXT,0,LPARAM(PChar(s)));
    end;我给一个notepad发送消息,它也没处于激活状态啊。
      

  3.   

    解决了第一个问题:GetGUIThreadInfo下面,得试试该通过什么方式发什么消息了可惜,现在试不了,家里的电脑才装了那游戏