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) ;
在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) ;
相关文章推荐
- Vc 如何访问另外一个进程的窗口
- vc 防止程序重复运行(即只运行一个实例)并激活已运行进程和枚举进程及窗口
- 如何终止SQL Server中的用户进程(终止某一个用户访问sql server数据库)
- 关于访问另外进程窗口的问题
- 如何访问一个进程的内存空间
- 如何通过一个毫不相关的进程去控制另一进程窗口中数据
- 如何访问一个进程的内存空间
- vc中如何将一个工程的资源复制到另外一个工程【转】
- 如何在一个进程中启动另外一个线程:ProcessStartInfo Constructor
- 如何发送一个指令给另外一个进程[进程通信2]
- QT 进程基础(一) QT如何判断另外一个进程在运行
- [原创] ASP.NET 中如何弹出提示窗口然后导向另外一个页面
- vc中如何将一个工程的资源复制到另外一个工程?
- 在SWT中,如何点击一个按钮跳转到另外一个窗口?监听事件如何编写?
- 如何只保证窗口只打开一次[即只运行一个进程]
- 在VC 中如何隐藏一个主程序窗口
- Vc 如何启动一个进程
- 转:VC:如何根据文件名来获取程序进程和窗口句柄的代码(转载)
- Delphi如何访问一个进程的内存空间
- 如何打开 两个Editplus(窗口 进程),不想在一个窗口多标签打开程序,这样子很难对比程序