公司有个软件每天得登陆好几次  每次都得输入用户名和密码 一大串  怎么实现自动输入  给个思路自动输入

解决方案 »

  1.   

    调用shellexecute启动这个程序
    调用findwindow和findchildwindow找到文本框的句柄
    调用sendmessage(wm_settext)设置用户名、密码
    调用sendmessage(wm_click)点登录按钮
      

  2.   

    用2楼思路.
    void CSendWangWangDlg::OnButton1() 
    {
    // TODO: Add your control notification handler code here
    UpdateData(TRUE);
    HWND hwnd=::FindWindow("StandardFrame",NULL);


        CString str=m_edit;

    int i=0;


    while(hwnd) 

    i=0;

    CString string;


    char a[100];



    HWND pro,pro1,pro2; // 得到窗口名称

    ::GetWindowText(hwnd,a,100);

    string.Format("%s",a); // 如果含有"与"(因为QQ聊天窗口的名字都是"与XX聊天中");说明是QQ窗口

    if(string.Find(" - ")>-1)



    pro=FindWindowEx(hwnd,NULL,"SplitterBar",NULL);
    if(pro)
    {
    pro1=FindWindowEx(pro,NULL,"StandardWindow",NULL);
    pro1=FindWindowEx(pro,pro1,"StandardWindow",NULL);

    if(pro1)
    {
    pro2=FindWindowEx(pro1,NULL,"RichEditComponent",NULL);

    if(pro2)
    {

    ::SendMessage(pro2,WM_SETTEXT,0,(LPARAM)(LPCTSTR)str);
    ::SetForegroundWindow(pro2); Sleep(50); keybd_event(VK_RETURN ,NULL,NULL,NULL);

    keybd_event(VK_RETURN ,NULL,KEYEVENTF_KEYUP,NULL);

    }
    }

    }
    }
    hwnd=::GetWindow(hwnd,GW_HWNDNEXT);
    }

    AfxMessageBox("消息发送完成!");

    }
    以上代码是我以前写的,你可以参考一下,另外FindWindow,GetWindowText,FindWindowEx,SendMessage这几个函数你需要了解