#Python技术篇#——MSTSC命令行参数封装

user

雨橙

中国.四川.成都

世界之上、唯有远见、惟爱不变。


接上一篇文章关于3389远程自动登陆模块其中有一个功能是MSTSC命令行封装。

这个模块程序主要代码基于AutoIt实现,我们需要通过命令行参数去执行WINDOWS系统自带的mstsc.exe。参数来自后台数据库。包括IP。用户名。密码。


代码如下:


;Author:Robinn
;Email:Robinn@163.com
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <GUIConstants.au3>


if $CmdLine[1]="211.149.241.190" or $CmdLine[1]="115.159.53.71" or $CmdLine[1]="122.114.57.123" or  $CmdLine[1]="123.56.84.115" or $CmdLine[1]="211.149.245.220"  then
   $uadmin = "Administrator"
   $admin_ = RegRead("HKEY_CURRENT_USER\Software\Microsoft\Terminal Server Client\Servers\"&$CmdLine[1], "UsernameHint")
   if $admin_<>"" and StringInStr(StringLower($admin_),$uadmin)>0 Then
	  ;RegDelete("HKEY_CURRENT_USER\Software\Microsoft\Terminal Server Client\Servers\"&$CmdLine[1], "UsernameHint")
   Else
	  RegWrite("HKEY_CURRENT_USER\Software\Microsoft\Terminal Server Client\Servers\"&$CmdLine[1], "UsernameHint", "REG_SZ", $uadmin)
   EndIf


   RunWait(@ComSpec & " /c start /MAX mstsc /console /v:"&$CmdLine[1]&":"&$CmdLine[2],@SystemDir,@SW_HIDE)
   Sleep(2000)
   Send($CmdLine[3]&"{ENTER}")
   Sleep(20000)
   ;WinWaitActive("远程桌面连接", "", 20)
   Send("+{TAB 1}")
   Send("{ENTER}")
   ;WinWaitActive("[CLASS:DirectUIHWND]")
   Sleep(2000)
   ProcessClose("mstsc_.exe")

Else
   $uadmin = "Administrator"
   $admin_ = RegRead("HKEY_CURRENT_USER\Software\Microsoft\Terminal Server Client\Servers\"&$CmdLine[1], "UsernameHint")
   if $admin_<>"" and StringInStr(StringLower($admin_),$uadmin)>0 Then
	  ;RegDelete("HKEY_CURRENT_USER\Software\Microsoft\Terminal Server Client\Servers\"&$CmdLine[1], "UsernameHint")
   Else
	  RegWrite("HKEY_CURRENT_USER\Software\Microsoft\Terminal Server Client\Servers\"&$CmdLine[1], "UsernameHint", "REG_SZ", $uadmin)
   EndIf


   RunWait(@ComSpec & " /c start /MAX mstsc /console /v:"&$CmdLine[1]&":"&$CmdLine[2],@SystemDir,@SW_HIDE)
   Sleep(2000)
   Send("+{TAB 1}")
   Send("{ENTER}")
   Sleep(2000)
   WinWaitActive("[CLASS:TscShellContainerClass]")
   Send($CmdLine[3]&"{ENTER}")
   WinWaitActive("[CLASS:TscShellContainerClass]")
   Sleep(2000)
   ProcessClose("mstsc_.exe")
EndIf


这里主要实现命令行的调用代码是:

RunWait(@ComSpec & " /c start /MAX mstsc /console /v:"&$CmdLine[1]&":"&$CmdLine[2],@SystemDir,@SW_HIDE)


注:本文内容均系原创。如需转载分享请标明出处。
posted at