如何在同一行分别执行两个语句
本帖最后由 laojikelly 于 2010-1-27 11:06 编辑#NoTrayIcon
While 1
If ProcessExists("QQ.exe") Then ProcessClose("QQ.exe") and MsgBox(0,"应用程序出错","请重新安装")
Sleep("1000")
WEnd如何才能在第三行执行呢?我不想把他换到第二行,忘记怎么写了。麻烦有心人透露下天机。 不行的,if then只能执行单条语句 用 _
但是你的代码不对,then 后面只能一句 , 要执行多句,必须endif 结束,因此你需要then后面换行 你的代码可以这样写...
If ProcessExists("QQ.exe") and MsgBox(0,"QQ正在运行","点确定结束QQ.EXE") Then ProcessClose("QQ.exe")
意思是,当找到 QQ.exe 就执行 msgbox , MSGBOX正常退出,则执行then后面的
如果没找到 QQ.EXE ,后面的都不会运行 If ProcessExists("QQ.exe") Then $fAssignVar = ProcessClose("QQ.exe") and MsgBox(0,"应用程序出错","请重新安装") 楼上的,学习了...
pusofalse 发表于 2010-1-22 14:30 http://www.autoitx.com/images/common/back.gif
原来真的可以这样!
谢谢pusofalse大大,又让小的学了一招! 谢谢版主。 回复 5# pusofalse
哈哈,从没想过,也没见过,会有这办法。。膜拜啊
不知其他脚本语言有这写法没,回头试试 本帖最后由 pusofalse 于 2010-1-27 12:28 编辑
- -|||, 不必客气。有时写代码为了代码的美观,或者纯粹为了单行执行多条语句,可以使用以上方法,也可以调用以下的这个函数:Func _AssignVar(ByRef $vVar, $vValue = 0, $vReturn = "", $iError = @error, _
$iExtended = @extended, $vExpression = 0)
$vVar = $vValue
Return SetError($iError, $iExtended, $vReturn)
EndFunc这个函数的好处在于,可以为一个变量赋值,而@error和@extended的值不会因为调用此函数而受到影响,函数的返回值即是函数的$vReturn参数。除了$vVar之外,其他参数可以是任意的表达式。$vExpression在函数内部没有任何作用,单纯是为了调用其他函数不必再另写一行而已。
$vValue、$vReturn、$iError、$iExtended这4个参数的顺序很重要,在一行完整语句的执行中,如果有函数的嵌套用法,总是从左向右、从内向外扩展出函数的返回值,而@error的值也在不断发生变化,上面4个参数的顺序,只是依据我个人书写的习惯来安排的。如果希望@error和@extended的值来自于上一行语句,那么这就约束了$vValue和$vReturn的值不能来自于一个函数调用,解决的方法是在_AssignVar中再套一层_AssignVar,或者将$iError、$iExtended写在$vValue、$vReturn之前,这样做带来的结果是可以让@error、@extended完全不受函数调用的影响,但同时会牺牲了代码的简洁。当然这只是以我现在的认知来说的。
页:
[1]