pes6和we8不同,pes6获取键盘输入是从系统按键消息中截取。不是象we8那样读输入缓
冲区,所以要想实现中文输入,只能另辟蹊径了。下面是程序中消息处理函数的一些分析:
消息处理函数是009BC453处的call 00660A90:
00660A90开始至00660AD7是判断窗口是否处于激活状态,如果不是则忽略按键消息。
从00660AD7处开始,调用user32.dispatchmessageA函数向激活的游戏窗口传送按键消息。
660BA8的call 660BF0 是判断按键的:
如果符合条件的按键,就会调用9BEFCB的Call 009C0E90 显示字符。
如果是输入F1等快捷键,将在009C104D处的call 9BE800 进行处理:
9BE812处是校验第一有效标志,当[3A70C20]的值为00时,才能显示字符;
显示的内容在9BE833出入栈,调用9BE834的Call 9BE130来显示,其中F1的字符串的内存地址在[0x03a8b659]处。
在9BE130开始,就是显示子程序,9BE8E1EF的call 9BAFC0是校验第二有效标志,其中[3A709E4]的值为00时,就可以显示字符了。