如何捕获另一个程序(进程)的对话框,并向里面的EDIT控件填入字符?谢谢!

解决方案 »

  1.   

    是先取得这个窗口句柄,然后再用getwindow取出其中的子窗口,再根据stytle得出正确的edit控件的名柄,然后再sendmessage
      

  2.   

    关键是取得子窗口句柄.
    你可以用findwindow获得对话框的句柄,然后用getwindow(GW_CHILD )和getwindow(GW_HWNDNEXT)   遍历对话框的子窗口以获得你要找的edit控件.
    找到子窗口句柄一切就ok了.
      

  3.   

    如果知道是那个进程,则(1).用 BOOL EnumWindows(
       WNDENUMPROC lpEnumFunc,  // callback function
       LPARAM lParam            // application-defined value
    );
    枚举所有的顶级窗口
    或(2).可用 HWND GetWindow(
       HWND hWnd,  // handle to original window
      UINT uCmd   // relationship
    );
    再用 DWORD GetWindowThreadProcessId(
       HWND hWnd,             // handle to window
       LPDWORD lpdwProcessId  // process identifier
    );
    用得到的ProcessID与已知的比较,可找到窗口句柄
    若不知具体进程,则只能通过窗口标题判断
    然后同法遍历这个窗口的所有子窗口,找到你要的那个EDIT
    SendMessage