望高手指点一下:我想用C#写一个程序,当我把鼠标放到其他程序的输入框中时,可以取得这个输入框的当前句柄及这个文本框的caption值。希望路过的高手指点一下,无比感谢

解决方案 »

  1.   

    [DllImport("USER32.DLL")]  //激活窗体   
    public static extern bool SetForegroundWindow(IntPtr hWnd);
    [DllImport("User32.dll", EntryPoint = "FindWindow")]  //找窗体   
    private static extern IntPtr FindWindow(string lpClassName,string lpWindowName);
    [DllImport("user32.dll", EntryPoint = "FindWindowEx")]   //找子窗体   
    private static extern IntPtr FindWindowEx(IntPtr hwndParent,IntPtr hwndChildAfter, string lpszClass, string lpszWindow);
    [DllImport("User32.dll", EntryPoint = "SendMessage")]   //用于发送信息给窗体  等待返回消息 
    private static extern int SendMessage(IntPtr hWnd, int Msg, IntPtr wParam, string lParam);
    [DllImport("user32.dll")] //用于发送信息给窗体 加入消息列队 不等待返回消息 
    private static extern int PostMessage(IntPtr hwnd, uint wMsg, IntPtr wParam, uint lParam);
      

  2.   

    const int WM_GETTEXT = 0x000D;
    const int WM_SETTEXT = 0x000C;
    const int WM_CLICK = 0x00F5;
    //下面的这些参数都可以用Spy++查到 
    string lpszParentClass = "TfLogin"; //整个窗口的类名
    string lpszParentWindow = "用户登录"; //窗口标题 
    string lpszClass = "TEdit"; //需要查找的子窗口的类名,也就是输入框 
    string lpszClassname = ""; //需要查找的子窗口的标题 
    string lpszClass_Submit = "Button"; //需要查找的Button的类名 
    string lpszName_Submit = "登录"; //需要查找的Button的标题 
    string text = "pass";
    IntPtr ParenthWnd = new IntPtr(0);
    IntPtr EdithWnd = new IntPtr(0);
    IntPtr CWnd = new IntPtr(0);
    //查到窗体,得到整个窗体 
    ParenthWnd = FindWindow(lpszParentClass, lpszParentWindow);
    //判断这个窗体是否有效 
    if (!ParenthWnd.Equals(IntPtr.Zero))
    {
    //得到User Name这个子窗体,并设置其内容 
    EdithWnd = FindWindowEx(ParenthWnd, EdithWnd, lpszClass, lpszClassname);
    if (!EdithWnd.Equals(IntPtr.Zero))
    {
    SendMessage(EdithWnd, WM_SETTEXT, IntPtr.Zero, text);
    }
    }
    //得到Button这个子窗体,并触发它的Click事件 
    CWnd = FindWindowEx(ParenthWnd, CWnd, lpszClass_Submit, lpszName_Submit);
    if (!CWnd.Equals(IntPtr.Zero))
    {
    SendMessage(CWnd, WM_CLICK, (IntPtr)0, "0");
    }
    }