如何将一个函数作为一个参数来传递?
现在想设计一个函数,当这个函数满足一定条件的时候执行另外一个函数,类似于下面的样子!,但是我发现,当我运行Test这个函数的时候发现无论如何它都执行Click这个函数,有没有什么方法让我运行Test(1,Click(721,215))的时候不执行Click这个函数而运行类似于Test(0,Click(721,215))的时候执行Click这个函数?Test(1,Click(721,215))
Func Test($Role,$FName)
If $Role = 1 Then
Exit
EndIf
call ($FName)
EndFunc
Func Click($x,$y)
WinActivate("×××","")
mouseclick("Left",$x,$y)
EndFunc 最好的方法就是分开写.写成2个程序用CMDLINE调用. Test(0, "Click(721,215)")
Func Test($Role, $FName)
If $Role = 1 Then
MsgBox(0, "", "现在是1的状态,正在执行第一个自定义函数")
ElseIf $Role = 0 Then
$xa = StringSplit($FName, "(")
$xb = StringSplit($xa, ",")
Call($xa, $xb, StringTrimRight($xb, 1))
EndIf
EndFunc ;==>Test
Func Click($x, $y)
MsgBox(4096, "", "现在是带 " &$x & " 和 " & $y& " 参数执行第二个自定义函数")
EndFunc ;==>Click 函数作为参数传过去。已经是面向对象编程了。AU3可以么?:face (13): Execute
--------------------------------------------------------------------------------
执行一个表达式(主要用于数学求值).
Execute ( 字符串 )
参数
字符串 包含一个表达式的字符串.
返回值
成功: 返回表达式的值.
失败: 返回 "" (空字符串) ,并且 @error 设置为非 0.
注意/说明
None.
页:
[1]