永发信息网

怎样用ShellExecute调用runas 自动输入密码

答案:1  悬赏:20  手机版
解决时间 2021-11-19 00:48
  • 提问者网友:半生酒醒
  • 2021-11-18 08:36
怎样用ShellExecute调用runas 自动输入密码
最佳答案
  • 五星知识达人网友:想偏头吻你
  • 2021-11-18 09:44
你提出的这个问题比较“偏”。呵呵。
我考虑了很久,思路如下:
(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。
看来是我模拟键盘输入的方法有问题。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯