postmessage API 函数的古怪问题(100分)

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

herald

Unregistered / Unconfirmed
GUEST, unregistred user!
postmessage &nbsp;API 函数的古怪问题<br>我有一个程序,是一个外挂,自动寻找一个包含股票帐号、交易密码、通讯密码的login窗口。<br>现在我的代码已经实现了自动寻找到这个包含股票帐号、交易密码、通讯密码的login窗口,<br>也找到了输入帐号的那个edit控件,现在我需要模拟按键输入一串帐号。发送之前需要删除<br>edit控件中的已有的帐号(如果有的话)。之后才是发送一个帐号字符串。<br><br>以下代码,可以实现发送帐号,但是有以下麻烦:<br>1。如果点击鼠标,让股票交易的login窗口获得焦点,那这个code就可<br> &nbsp; 以自动删除账号edit框中的内容。并且可以自动输入帐号。<br>2。进行步骤1后,如果没有点击鼠标,让股票交易的login窗口获得焦点,<br> &nbsp; 那这个code就只能实现输入账号,无法删除已有的内容。<br><br><br>我百思不得其解,请高手指教,以下这个代码,在对其他edit控件进行操作也是同样的现象。<br><br><br>以下是模拟输入一个账号的,senmessage代码<br>其中CWnd *cwnd是需要输入账号的cwnd对象。<br>char *str是需要输入的帐号字符串<br>BOOL is_combobox是一个无关紧要的参数,已经不使用了<br><br><br>void C_ABchina_FJ_yzt_login::sendkey_serial(CWnd *cwnd,char *str,BOOL <br>is_combobox)<br> //往一个windows对象中发送keycode<br>{<br> int i;<br> cwnd-&gt;SetFocus();<br> for(i=0;i&lt;30;i++) &nbsp;//删除已有的内容<br> &nbsp;{ cwnd-&gt;SendMessage(WM_KEYDOWN,VK_DELETE); &nbsp;//经常不能刷新combobox 文本<br> &nbsp; &nbsp; //Sleep(3);<br> &nbsp;cwnd-&gt;SendMessage(WM_KEYUP,VK_DELETE);<br> &nbsp;//Sleep(3);<br> }<br> while(*str!=0x00) &nbsp; //输入新的内容<br> &nbsp; &nbsp;{cwnd-&gt;PostMessage(WM_CHAR, *str, 0);<br> &nbsp; &nbsp; str++;<br> &nbsp; &nbsp;}<br>}<br><br><br>请相信我,我写的程序是绝对合法的程序。只是我想自己使用的一个code,绝对不是黑客之类的代码。<br>请相信我,我写的程序是绝对合法的程序。只是我想自己使用的一个code,绝对不是黑客之类的代码。
 
这其实是一个设置窗口焦点的问题.<br>并不是消息发送函数的问题.<br>可以这样想一下,你现在一个Edit窗口,不是焦点,你直接按键盘输入,那个Edit框里面也不会响应你的按键输入.换成消息发送函数来模拟键盘输入,实际上是一回事,不是焦点,当然不会响应输入.<br>我在解决此类问题的时候,是用一个DLL来做个鼠标钩子,注入到目标进程中,截取鼠标松开的消息,然后通过setwindowtext函数来设置Edit文本内容.<br>这样做的好处是,如果你是一个木马程序,那么在更改帐号的时候,不容易被察觉.
 
www.source520.com 再次更新近3万代码,全部免费免注册狂下载
 
后退
顶部