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

 

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

在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) ;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值