我能使用FindWindowEx取得外部程序窗口中的某个文本框的值,但该窗口中有很多个文本框,
用spy++查找后发现类名都是一样的Edit,用文本框标题不太可能,
所以我想请教大家有什么办法能够指定访问某个文本框的值        [DllImport("User32.Dll")]
        public static extern IntPtr FindWindow(string lpClassName, string lpWindowName);
        [DllImport("User32.Dll")]
        public static extern IntPtr FindWindowEx(IntPtr hwndParent, IntPtr hwndChildAfter, string lpszClass, string lpszWindow);

解决方案 »

  1.   

    根据SPY++中取得的类名(或标题名)及层次关系
    [DllImport("user32.dll", EntryPoint = "FindWindow")]
    private extern static IntPtr FindWindow(string lpClassName, string lpWindowName);
    [DllImport("user32.dll")]
    static extern IntPtr FindWindowEx(IntPtr hwndParent, IntPtr hwndChildAfter, string lpszClass, string lpszWindow);private void button1_Click(object sender, EventArgs e)
    {
        IntPtr hWnd1 = FindWindow(null, "主窗口标题");                         
        SetForegroundWindow(hWnd1);
        IntPtr hWnd2 = FindWindowEx(hWnd1, IntPtr.Zero, null, "控件文本");   
        IntPtr hWnd3 = FindWindowEx(hWnd1, IntPtr.Zero, "控件类名", null);   
    }
      

  2.   

    哪就不好做了,windows那么多窗口,你说要什么样的窗口都说不清楚,谁能帮你找到呀?