有个程序在机器启动之后会自动运行,但是需要输入密码,如果是人操作的话,就要先激活窗口,然后按alt+l(L键,不是数字1)弹出菜单,再按回车或者l(L键,不是数字1)键弹出密码输入框,输入密码1234,再回车确定,OK。
我现在要写个程序,把人工操作的部分用程序来完成
1,根据窗口标题取得窗口句柄(这个已经可以实现)
2,激活窗口,这个也可以实现,但是窗口不会打开再桌面上,只是在任务栏上面凹下去了
3,发送alt+l消息
4,发送回车消息
5,一次发送1,2,3,4消息
6,发送回车消息程序代码如下,但是密码总也输入不了,请高手给看看什么问题,谢谢! HWND hd=::FindWindow(0,"程控交换机管理系统CDX-PBX V300");
if (hd != NULL)
{
::SetForegroundWindow(hd);
::SendMessage(hd,WM_SYSCOMMAND,SC_KEYMENU,(WPARAM)0x4c);
::SendMessage(hd,WM_CHAR,13,0);
::SendMessage(hd,WM_CHAR,49,0);
::SendMessage(hd,WM_CHAR,50,0);
::SendMessage(hd,WM_CHAR,51,0);
::SendMessage(hd,WM_CHAR,52,0);
::SendMessage(hd,WM_CHAR,13,0);
}
我现在要写个程序,把人工操作的部分用程序来完成
1,根据窗口标题取得窗口句柄(这个已经可以实现)
2,激活窗口,这个也可以实现,但是窗口不会打开再桌面上,只是在任务栏上面凹下去了
3,发送alt+l消息
4,发送回车消息
5,一次发送1,2,3,4消息
6,发送回车消息程序代码如下,但是密码总也输入不了,请高手给看看什么问题,谢谢! HWND hd=::FindWindow(0,"程控交换机管理系统CDX-PBX V300");
if (hd != NULL)
{
::SetForegroundWindow(hd);
::SendMessage(hd,WM_SYSCOMMAND,SC_KEYMENU,(WPARAM)0x4c);
::SendMessage(hd,WM_CHAR,13,0);
::SendMessage(hd,WM_CHAR,49,0);
::SendMessage(hd,WM_CHAR,50,0);
::SendMessage(hd,WM_CHAR,51,0);
::SendMessage(hd,WM_CHAR,52,0);
::SendMessage(hd,WM_CHAR,13,0);
}
Sleep(1000); //延时一秒,程序启动有反应时间,所以加个延时
::PostMessage(hd1,WM_SYSKEYDOWN,0x4c,1<<29);//向窗口发送alt+l消息打开菜单的下拉列表
Sleep(1000); //同上面的延时
keybd_event(VK_RETURN,0,0,0);//回车
Sleep(1000); //同上面的延时
keybd_event('1',0,0,0); //模拟击键“1”
keybd_event('2',0,0,0); //...
keybd_event('3',0,0,0); //...
keybd_event('4',0,0,0); //...keybd_event(VK_RETURN,0,0,0);//模拟击键回车功能很简单,就是一个自动的登陆器。另外,我对大家的热情关注和各种解答表示由衷的感谢,分不多,聊表心意。