请问autoit能不能互相嵌套
比如MsgBox(0,"file_size",@UserName),_FileWriteLog(@ScriptDir & "\my.log",@UserName)这些我想用管理员权限去执行
RunAs("administrator", @Computername, "123", _FileWriteLog(@ScriptDir & "\my.log",@UserName))
不知道正确写法是怎么写,我看以前的版本还有RunAsSet可以设置身份,怎么版本高了好像反而更不方便了?
或者我写的这个程序要在普通用户下,用管理员权限去执行
是不是在程序开头加个什么参数把环境给改了?
[ 本帖最后由 liangxm 于 2009-4-13 18:19 编辑 ] RunAs($sUserName, @ComputerName, $sPassword, 0, @COMSPEC &_FileWriteLog(@ScriptDir & "\my.log",@UserName))
?? 16th May, 2008 - v3.2.12.0
AutoIt:
RunAsSet() has been removed. Use the new RunAs() and RunAsWait() functions instead. They have been enhanced with slightly better security (It is still not recommended to store important passwords in your scripts) and more functionality.
开发人员,叫你使用runas和runaswait来代替 恩,我看到了,但如何代替呢?
老版的说:
; 使用本地管理员帐号(adminstrator)
RunAsSet("Administrator", @Computername, "adminpassword")
; 以管理员的身份运行注册表编辑器
RunWait("regedit.exe")
; 重设用户身份
RunAsSet()
新版的我用:
Local $sUserName = "administrator"
Local $sPassword = "123456"
RunAs($sUserName, @ComputerName, $sPassword, 0, @COMSPEC &_FileWriteLog(@SystemDir & "\my.log",@UserName))
不能在@SystemDir 里面创建my.log文件,所以我想应该是没有使用管理员权限
; Run a command prompt as the other user.
Local $pid = RunAsWait($sUserName, @ComputerName, $sPassword, 0, @COMSPEC &_FileWriteLog(@SystemDir & "\my.log",@UserName))
; Wait for the process to close.
ProcessWaitClose($pid)
这么写也没法创建
我不知道是不是哪写错了?请高手提示一下~ 这个问题与嵌套无关,与版本无关。请仔细阅读RunAs的语法。
RunAs( "username", "domain", "password", logon_flags, "filename" [, "workingdir" [, flag[, standard_i/o_flag]]] )
看到没有?第5个参数是filename。你写个函数_FileWriteLog结果就是执行错误。同样,@COMSPEC &_FileWriteLog 这种语句你认为会执行成功吗?
请注意,RunAs的作用是让Windows以另一用户权限去运行一个程序。 代码问题,非函数问题 原帖由 sensel 于 2009-4-10 21:34 发表 http://www.autoitx.com/images/common/back.gif
这个问题与嵌套无关,与版本无关。请仔细阅读RunAs的语法。
RunAs( "username", "domain", "password", logon_flags, "filename" [, "workingdir" [, flag[, standard_i/o_flag]]] )
看到没有?第5个参数是filenam ...
呵呵,我不知道能不能用runas去执行一条指定用户的命令,试了一下发现不行,不知道有没有办法实现呢?
还是我写个命令的exe,然后再让runas去执行这个exe? 原帖由 thesnow 于 2009-4-11 14:42 发表 http://www.autoitx.com/images/common/back.gif
代码问题,非函数问题
呵呵,不要话说一半啊~ 无语。。。
RunAsWait("Administrator", @ComputerName, "adminpassword", 0, "regedit.exe")
成功,因为 regedit.exe 是一个程序
RunAsWait("Administrator", @ComputerName, "adminpassword", 0, _FileWriteLog(@ScriptDir & "\my.log")
失败,因为 _FileWriteLog 不是程序
RunAsWait("Administrator", @ComputerName, "adminpassword", 0, @ComSpec & _FileWriteLog(@SystemDir & "\my.log"))
莫名其妙,@ComSpec = @SystemDir & "\cmd.exe",cmd.exe 可以执行 au3 内的函数吗? 就是想试试,qqq~
页:
[1]