读书人

如何实现给一个软件自动填入账户名和密

发布时间: 2013-09-28 10:01:20 作者: rapoo

怎么实现给一个软件自动填入账户名和密码 求给个思路
公司有个软件每天得登陆好几次 每次都得输入用户名和密码 一大串 怎么实现自动输入 给个思路 自动输入
[解决办法]
调用shellexecute启动这个程序
调用findwindow和findchildwindow找到文本框的句柄
调用sendmessage(wm_settext)设置用户名、密码
调用sendmessage(wm_click)点登录按钮
[解决办法]
用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这几个函数你需要了解

读书人网 >VC/MFC

热点推荐