日期:2014-05-17  浏览次数:21307 次

FindWindowEx 找不到子控件的句柄,求教
const int WM_GETTEXT = 0x000D;
            const int WM_GETTEXTLENGTH = 0x000E;
            IntPtr hwndCalc = FindWindow(null, "硬盘序列号更改工具");
           // 此句???? 用Edit类名,可以找到子控件的句柄,但是那个软件里面 有三个Edit的类名 用标题 1234-5678  就找不到句柄,咋个原因呢?
            IntPtr hwndThree = FindWindowEx(hwndCalc, 0, "Edit", null);
            SetForegroundWindow(hwndCalc);
            if (hwndCalc != IntPtr.Zero)
            {
                int TextLen;
                TextLen = SendMessage((int)hwndThree, WM_GETTEXTLENGTH, 0, 0);
                Byte[] byt = new Byte[TextLen];
                SendMessage((int)hwndThree, WM_GETTEXT, TextLen + 1, byt);
                string str = Encoding.Default.GetString(byt);
                
            }




------解决方案--------------------
用EnumChildWindows API枚举Edit试试