目的:在一个登录对话框里自动填入已经写好的内容,实现自动登录我的思路:获取EDITTEXT ID-》SetDlgItemText
问题:
1.怎么找EDITTEXT的ID值?没有hDlgItem2.OD通过GetDlgItemText,GetWindowText下断,可以分析出hwnd,controlID,
但这个程序,在那两个API函数下断,运行时都没有中断,不知道怎么回事?3.如果此路不通,还有别的什么方法吗PS:菜鸟一个,分数不多,有理解不到的地方,还请高手们包涵指正 :(

解决方案 »

  1.   

    The SetDlgItemText function sends a WM_SETTEXT message to the specified control. 
    The GetDlgItemText function sends a WM_GETTEXT message to the control. 
    通过FindWindow,GetWindow,获取控件句柄,然后发送WM_SETTEXT 和 WM_GETTEXT 消息
      

  2.   

    获得编辑框的话GetWindowText应该是空,用户名跟密码又怎么区分呢?~
    两个都是空~
      

  3.   

    也许以下2个函数有用:
    GetClassName(hWnd, pBuf, 128);
    dwStyle = GetWindowLong( hWnd, GWL_STYLE);
      

  4.   

    如果知道了这个控件的句柄,可以调用GetDlgCtrlID获取其ID
      

  5.   

    你的编辑框用spy++可以看到吗?
      

  6.   

    不用ID,用句柄吧,用spy++查看句柄!
      

  7.   

    API函数GetDlgCtrlID(getdlgctrlid)是专门用来获得ID的,它需要唯一一个参数是该子窗口的句柄
    所以思路就是千方百计得到它的句柄
    如果这个程序是你编的,多设置一个全局变量存放这个句柄就好了
    如果不是,你就要自己找到这个句柄,方法很多,比如遍历所有的子窗口句柄,判断哪个符合你要的窗口特征不过我有个问题,不知道你要这个ID干吗。编译出来的程序一般一个子窗口ID是固定的,因为许多人在建立这个窗口时传递的ID参数是个常量。什么意思,如果这个程序不是你自己编的,你又要获得它的ID,可以直接通过第三方软件查看它的ID,比如spy++,与句柄不同,一般情况下每次它的ID都是一样的
    这个ID你拿来直接用就好了
      

  8.   

    就因为ID值是个常量,才想着找到它,用起来就比较方便~至于SPY++,今天才刚接触,有很多不懂的地方,
    可惜没分了~先自己琢磨下,再弄点分把不懂的全发上来,呵呵
    结贴了,谢谢各位大虾的指点~