各位仁兄,帮帮我!
    在一些网络游戏中,那些输入文字的地方不是Windows的标准控件!可能,是游戏公司自己做的……    我的难点是:向游戏那些输入文字的发送消息WM_SETTEXT,却把游戏窗体的Title名字变了!好像,只能的到这个窗体的句柄,那个输入文字的地方是程序模拟出来的!晕啊!但是,这个地方可以用键盘输入汉字(输入法);问题来了,怎么才能模拟这种键盘输入汉字!也就是,一个字符串怎么才能自动填充到游戏中的那个输入汉字的地方??或许,可以将这个字符串放到输入法所用到的文字缓冲区中,让游戏自己读取!!但是,我怎么才能实现这种方式呢?

解决方案 »

  1.   

    文字输入时总会在画面上显示出来吧.
    可以以这为突破口.
    DX游戏在画面上显示字是用页面对象的GETDC函数得到页面的DC,再用TEXTOUT等API函数画就可以了.你可以HOOK TEXTOUT等文字显示有关的函数(HOOK API方面的资料很多的,找找吧),然后在拦载到API的调用时就知道字符串在目标进程中的缓冲区了(PCHAR类型就是指向字串的指针)再用WriteProcessMemory写就可以了.
    不过以上只是理论上可行.实际我也没试过,当给你做个参考吧.
      

  2.   

    哦!你的建议或许可行,但是好像以我的能力作的一定不好……
    好像WM_CHAR消息可能解决这个问题,我正在试验中……
      

  3.   

    这个问题我已经经过努力解决了!谢谢大家对我的帮助!
    解决方法如下:
        发送 WM_IME_CHAR 消息
    简单吧!哈哈……
    好,希望大家一起努力解决难题!!!