您的位置:首页 > 其它

VC 如何访问另外一个进程的窗口

2013-03-25 15:09 381 查看
需要在一个进程中访问另外一个进程的登录窗口,并且自动输入用户名和密码,自动点击登录按钮,以下是程序代码,供大家参考:

在windows系统中查看是否有title为Login ERROR的窗口

bool checkV5billalive()

{

//获取windows的异常窗口

while(true){

char* errorWinName ="Login ERROR";

HWND hwnd=::FindWindow(NULL,errorWinName); //隐藏"ddd"窗口

if(hwnd==NULL)

{

break;

}

Sleep(2);

//ID = 3

::SendMessage(hwnd,WM_COMMAND,MAKEWPARAM(3,BN_CLICKED),NULL);

}

Sleep(2);

bool isFind = checkProcess(m_v5billProcessName);

return isFind;

}

//获取用户登录的窗口,并自动发送用户名和密码,自动登录

char* loginName ="用户登录";

HWND hwnd=::FindWindow(NULL,loginName); //获取窗口句柄

if(hwnd==NULL)

{

return false;

}

//给UserName赋值 ID为1024

//ID = 3

::SetDlgItemText(hwnd,1024,"username"); //向窗口中ID为1024的输入框发送内容username

::SetDlgItemText(hwnd,1025,"password");//向窗口中ID为1025的输入框发送内容password

HWND userhwnd = GetDlgItem(hwnd,1024);

::SendMessage(userhwnd, WM_SETTEXT, 0, (LPARAM)"username"); //向窗口中ID为1024的输入框发送内容username

userhwnd = GetDlgItem(hwnd,1025);

::SendMessage(userhwnd, WM_SETTEXT, 0, (LPARAM)"password");//向窗口中ID为1025的输入框发送内容password

::SendMessage(hwnd,WM_COMMAND,MAKEWPARAM(1,BN_CLICKED),NULL);////向窗口中ID为1的按钮发送CLICKED事件

//获取窗口的父句柄

HWND parent = ::GetParent(hwnd);

//将父窗口最大化

SendMessage(parent, WM_SYSCOMMAND, SC_MAXIMIZE, NULL) ;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: