在不同应用程序的通迅中要用到findwindowEX,通过SPY++发现每个文本框的的类名及窗口标题都相同,怎样才能取得每个文本框的句柄
appWnd_edit = FindWindowEx(appWnd,new IntPtr(0),"Edit","");
另外SPY++中发现有些文本框的标题是一串数值,把它作为第四个参数就无法找到控件,不知为什么,
如果应用程序是C#做的,第四个参数可以用控件名称,如"textBox1",但中SPY++中没有找不到,怎么办?

解决方案 »

  1.   

    首先可以根据该控件的父子关系一层层自上往下找,另外可以配合该控件在其父窗体的Location来区分。
      

  2.   


                IntPtr p = IntPtr.Zero ;
                do
                {
                    p = FindWindowEx(this.Handle, p, "控件的類名", null);
                    if (!p.Equals(IntPtr.Zero))
                        label1.Text = label1.Text + Environment.NewLine;
                } while (!p.Equals(IntPtr.Zero));
      

  3.   


                //循環取得窗體中某控件所有的Handle
                IntPtr p = IntPtr.Zero ;
                do
                {
                    p = FindWindowEx(this.Handle, p, "控件的類名", null);
                    if (!p.Equals(IntPtr.Zero))
                        label1.Text = label1.Text + p.ToString() + Environment.NewLine;
                } while (!p.Equals(IntPtr.Zero));
      

  4.   

    FindWindowEx 第二个参数是从此控件开始往下查找,这个参数你填写当前句柄就可以查找下一个了答案到病除,试试,嘎嘎