想实现一个自动填写的功能,目标是一个软件,有很多窗口.
我用递归遍历的方法找到了我要自动填写文本的编辑框窗体的句柄了,但是我无论是用
pwnd->SendMessage(WM_SETTEXT,0,(LPARAM)buf1);
这种方式发送,还是直接pwnd->SetWindowTextW(_T("sss啊"));都无法完成自动填写,
使用SPY++查看,上面两种方式更改的都是该窗体的标题
请问有什么办法,让编辑框输入我想要的内容呢?
if(wcscmp(str,_T("TtsGridEditBox.UnicodeClass"))==0)   
  {
   CWnd *pwnd = CWnd::FromHandle(hd);
    CString sa=_T("啊啊");
WCHAR *buf1=new WCHAR[512];
//pwnd->SetWindowTextW(_T("sss啊"));
   lstrcpy(buf1,(LPCTSTR)sa);
   pwnd->SendMessage(WM_SETTEXT,0,(LPARAM)buf1);
   break;
  }

解决方案 »

  1.   

    http://blog.sina.com.cn/s/blog_4ed1e0e40100g8ag.html
      

  2.   

    1. 用你的程序对一个普通的VC窗口程序的Edit设置文本,看看成功否。2. 被控制的程序是TTS程序吗,被控制的控件是一个简单的EDIT控件吗?用spy跟踪被控制程序的编辑框的消息,看什么消息会导致内容发生变化。
      

  3.   

    普通的可以,不是TTS程序,跟踪了一下,WM_CHAR消息就可以改变内容.等回家后再试试2楼的方法,先谢过!
      

  4.   

    再不行的话,试下用模拟按键,发送CTRL+V复制文本进去.
      

  5.   

    代码注入没玩过,版本大神给个例子给俺参考下吧这个百度一下很多啊
    http://www.vckbase.com/index.php/wv/1580