hzcjd 发表于 2012-6-13 14:18:09

HotKeySet传值问题求教

HotKeySet("{F8}", "captureEsc");captureEsc中能传递参数
Func captureEsc($x)
        If $x>0 Then
    MsgBox(0,"提示", "成功")
        EndIf
EndFunc
热键HotKeySet可以传递参数给EndFunc

星雨朝霞 发表于 2012-6-13 17:43:35

这命令不支持参数

whuzqAI 发表于 2012-6-13 20:50:32

可以在函数EndFunc里再调用函数,这个函数就可以传参数了噻;或者用全局变量也可以啊。

afan 发表于 2012-6-13 20:55:10

调用的函数不能给函数加上参数. 它将会被忽略HotKeySet("{F8}", "_TocaptureEsc")
Dim $x = 0
Func _TocaptureEsc()
        $x = 1
        captureEsc($x)
EndFunc
Func captureEsc($x)
        If $x >0 Then
                MsgBox(0,"提示", "成功")
        EndIf
EndFunc

whuzqAI 发表于 2012-6-13 20:58:23

被你误导了,是captureEsc函数,从你的函数名里可以看出应该是捕捉Esc键,为什么热键设置的是F8,不明白。不用传参数啊,看下面程序,可以实现你想要的不?
HotKeySet("{F8}","captureEsc")
$x = 10;
Func captureEsc()
        If $x > 15 Then
                MsgBox(0,"提示","成功")
        Else
                MsgBox(0,"提示","失败")
        EndIf
EndFunc

whuzqAI 发表于 2012-6-13 21:00:29

不好意思,把while循环忘了,没有while达不到效果,因为程序一下就结束了,返回了,实在不好意思,我也是想试下去掉while循环可以不,结果复制上来的时候忘了加上了。
HotKeySet("{F8}","captureEsc")
$x = 10;
while 1
WEnd

Func captureEsc()
        If $x > 15 Then
                MsgBox(0,"提示","成功")
        Else
                MsgBox(0,"提示","失败")
        EndIf
EndFunc

user3000 发表于 2012-6-13 21:21:46

本帖最后由 user3000 于 2012-6-14 08:56 编辑

回复 1# hzcjd


编程可以灵活多一点点:HotKeySet("{esc}", "_Esc")

While 1
        Sleep(100)
WEnd

Func _Esc()
        $x = InputBox('输入参数', '请输入一个数字', 3, '', '100', '50', @DesktopWidth/2 - 100, @DesktopHeight/2 -50, 3)
    If NotStringIsDigit($x) Then $x = ''
    captureEsc($x)
EndFunc

Func captureEsc($x = 0)
      If $x>0 Then
      MsgBox(0,"提示", "成功")
      EndIf
EndFunc补充: 网页没刷新, 其实本楼是对4楼A大进行'狗尾续貂'了!

zerobin 发表于 2012-6-13 21:22:01

上面两种方法,都可以曲线到达

user3000 发表于 2012-6-13 21:27:50

回复 2# 星雨朝霞

HotKeySet 自定义的函数可以有一个或多个有默认值的参数.
直接按快捷键传递默认值, 从别的地方调用可以传递别的值了.
页: [1]
查看完整版本: HotKeySet传值问题求教