如何为runas自动输入密码
2个回答
展开全部
你提出的这个问题比较“偏”。呵呵。
我考虑了很久,思路如下:
(1)程序中启动控制台,运行runas命令。
(2)CMD窗口出来后,模拟键盘输入数字,输完后自动按回车。
我不知道你要运行什么程序,我拿XP自带的计算器(calc.exe)程序举例。
首先,新建一个名叫lulu的计算机用户,密码123;
写代码:
procedure TForm1.Button1Click(Sender: TObject);
begin
ShellExecute(Handle,nil,'cmd.exe','/K runas /user:lulu "cmd.exe cmd/k calc.exe"',nil,SW_NORMAL);
//以计算机名lulu的身份登陆电脑并且运行计算器calc.exe程序。
Sleep(2000);//延时2秒
//模拟键盘
keybd_event($97,0,0,0);//按下1
keybd_event($97,0,KEYEVENTF_KEYUP,0);//抬起1
keybd_event($98,0,0,0);//按下2
keybd_event($98,0,KEYEVENTF_KEYUP,0);//抬起2
keybd_event($99,0,0,0);//按下3
keybd_event($99,0,KEYEVENTF_KEYUP,0);//抬起3
Keybd_event(VK_RETURN,0,0,0);//回车键
end;
程序写完后,测试,调用控制台启动runas没有问题,已经到了输入密码的位置。
结果,回车键是自动按了,但控制台没有接收到123。
看来是我模拟键盘输入的方法有问题。
我考虑了很久,思路如下:
(1)程序中启动控制台,运行runas命令。
(2)CMD窗口出来后,模拟键盘输入数字,输完后自动按回车。
我不知道你要运行什么程序,我拿XP自带的计算器(calc.exe)程序举例。
首先,新建一个名叫lulu的计算机用户,密码123;
写代码:
procedure TForm1.Button1Click(Sender: TObject);
begin
ShellExecute(Handle,nil,'cmd.exe','/K runas /user:lulu "cmd.exe cmd/k calc.exe"',nil,SW_NORMAL);
//以计算机名lulu的身份登陆电脑并且运行计算器calc.exe程序。
Sleep(2000);//延时2秒
//模拟键盘
keybd_event($97,0,0,0);//按下1
keybd_event($97,0,KEYEVENTF_KEYUP,0);//抬起1
keybd_event($98,0,0,0);//按下2
keybd_event($98,0,KEYEVENTF_KEYUP,0);//抬起2
keybd_event($99,0,0,0);//按下3
keybd_event($99,0,KEYEVENTF_KEYUP,0);//抬起3
Keybd_event(VK_RETURN,0,0,0);//回车键
end;
程序写完后,测试,调用控制台启动runas没有问题,已经到了输入密码的位置。
结果,回车键是自动按了,但控制台没有接收到123。
看来是我模拟键盘输入的方法有问题。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询