wang452 发表于 2009-7-5 21:45:13

怎么做HOTKEY输入的控件,象smartgui里的那样

如题
深感autoit的强大,但为什么GUI设计里面没有HOTKEY的输入控件呢。autohotkey里面有的,在autoit里面怎么做出这样的热键输入框的效果???

autoit3CN 发表于 2009-7-5 22:04:57

热键输入框?解释清楚一点

wang452 发表于 2009-7-5 23:16:41

热键输入控件,象一般的输入框一样,但是只能显示你安的热键,比如:你按下CTRL+C,输入框里就显示CTRL+C

wang452 发表于 2009-7-5 23:20:12

换种问法:怎么才能做到一个输入框,只能显示你按下组合键的信息?好像很多地方都用到的吧,但是总碰不到这样的控件,autohotkey的一个GUI工具里有这个控件,但autoit里没有这个HOTKEY控件。那如何才能做到这样的输入框呢?
不知这次问的怎么样,请高手们解答一下,感谢!!!

wang452 发表于 2009-7-6 21:58:52

:face (35):很难的问题吗?
请高手出来点拨一下~~~

lynfr8 发表于 2009-7-6 22:48:43

#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#Region ### START Koda GUI section ### Form=
$Form1 = GUICreate("热键输入框", 208, 43, 192, 124)
$Input1 = GUICtrlCreateInput("按下CTRL+C", 16, 8, 177, 21)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###
HotKeySet('^c','hot')
While 1
        $nMsg = GUIGetMsg()
        Switch $nMsg
                Case $GUI_EVENT_CLOSE
                        Exit

        EndSwitch
WEnd

Func hot()
        GUICtrlSetData($Input1,'CTRL+C')
        EndFunc

wang452 发表于 2009-7-6 23:11:26

:face (27):太谢谢了!!!
能不能再帮忙思考下~
我想了想这样的话我只能输入CTRL+C,如果按下其它按键的话就要在代码里无限的列举按键了。
怎么才能显示按下的任意按键,不只是显示CTRL+C,例如我按下了CTRL+B,它就显示CTRL+B,或者按下更多的,它都能显示,任意按键都能显示

顽固不化 发表于 2009-7-7 00:50:25

本帖最后由 顽固不化 于 2009-7-7 01:05 编辑

终于明白你的意思了,完成这任务可能窗口置于事件模式较合适,但AU3对事件的定义并不多,无非是窗口形态变化、关闭,鼠标的按下、抬起、移动。而没找到有关键盘的事件。
如能在键盘按下时获取其键码之类的,就可以知道和显示相应的热键定义了。等三恨来解决吧。
实际上这是个“如何获取键码的问题”
这个函数,你可以研究一下:
_IsPressed

顽固不化 发表于 2009-7-7 02:07:13

http://www.autoitx.com/forum.php?mod=viewthread&tid=2389&highlight=%BC%FC%C5%CC

http://www.autoitx.com/forum.php?mod=viewthread&tid=1625&highlight=%B0%B4%BC%FC

参考两位大哥的

kn007 发表于 2009-7-7 07:49:06

楼上提供的地址不错。。。。。。。

sxd 发表于 2009-7-9 04:39:46

本帖最后由 sxd 于 2009-7-9 05:11 编辑

http://www.autoitscript.com/forum/index.php?showtopic=96492

kn007 发表于 2009-7-9 08:45:35

呀,居然有这种udf

wang452 发表于 2009-7-9 21:50:55

:face (36):
太好暸~~~
謝謝答復的朋友們
页: [1]
查看完整版本: 怎么做HOTKEY输入的控件,象smartgui里的那样