au3如何抢程序的热键?[已解决]
本帖最后由 happytc 于 2011-1-13 08:26 编辑如,TotalCommander(TC)程序的Alt+F6是给文件解压的热键,我想自动化TC这个解压出来的窗口,在au3里同样设Alt+F6,代码如下,但时灵时不灵的,换成别的TC没有的热键(#z),就正常了,这要为什么?HotKeySet("!{F6}", "TCUnpackSameDir")
While 1
Sleep(100)
WEnd
Func TCUnpackSameDir()
Local $TCclass1, $TCclass2, $TCControl1, $TCControl2, $Info, $Val
$Val = "cm_UnpackFiles" & @CR
$TCclass1 = ""
$TCclass2 = ""
$TCControl1 = "TAltEdit1"
$TCControl2 = "TCheckBox1"
$TCControl3 = "TButton4"
ControlSend($TCclass1, "", "Edit1", $Val)
If WinWaitActive($TCclass2) Then
Do
Send("{DEL}")
$Info = ControlGetText($TCclass2, "", $TCControl1)
Until Not $Info
ControlCommand($TCclass2, "", $TCControl2, "Check")
ControlClick($TCclass2, "", $TCControl3)
EndIf
EndFunc而在AHK里做同样的事,只要下面的代码,就完全正常了,怎么在au3里也可以完全抢程序热键SetTimer subTimer, 246
subTimer:
$!F6::
IfWinActive ahk_class TTOTAL_CMD
{
PostMessage, 1075, 509
WinWaitActive, ahk_class TDLGUNZIPALL
Send, {Del}
Control, Check, , TCheckBox1
Send, {Enter}
}
else
Send !{F6}
return
另外上面AHK代码里的这句: PostMessage, 1075, 509
在au3里怎么表达?其中的509是TC程序的命令,但前面的1075在au3里怎么弄? 这里是哪里热键 你的想法已经有人实现了呵呵
最初来源 :https://dream4ever.org/showthread.php?t=79529
这里提供下载: http://bbs.et8.net/bbs/showthread.php?t=721102 楼上的,你有帐号(精品论坛的)不?帮下载下吧,我想看看别人是怎么实现的,多学习下 回复 4# 蜘蛛抱蛋
不过,你给的地址,跟我帖子说的,完全是另外回事呢! 学习了,还真是有人先做了 回复 6# happytc
我没有帐号。不能注册码?我没试哦
AdlibRegister("_HotKeySet")
Func _HotKeySet()
If HotKeySet("!{F6}", "test") = 0 Then
;先删除被其他程序占用的热键(等老大...,俺不会!)
;HotKeySet("!{F6}", "test")
Else
;MsgBox(0,0,"热键已设置",1)
EndIf
EndFunc
Func test()
;return
EndFunc
While 1
Sleep(3000)
WEnd
论坛老大们,怎么解决这个问题?
看来ahk叫autoHotKey不是白叫的,在热键方面,ahk的确比au3强太多了。
上面_ddqs大侠的帖子,谁能完成呀。 回复 9# _ddqs.
删除热键是很困难滴,估计AHK也不行 上面我给的ahk的,没有任何问题,可以正常使用。
那个ahk的代码,根本没有去删除热键,而是抢热键,每次都能抢到。但au3的就不能次次抢到热键了
这个问题,老大们怎么解决呀 这个问题大家没有遇到过?还是au3暂时还无法解决? _WinAPI_UnregisterHotKey 本帖最后由 飘云 于 2010-12-22 19:38 编辑
_WinAPI_UnregisterHotKey存在与WinAPIEx.au3内,一般帮助文档里的是WinAPI.au3,貌似WinAPIEx_3.0.chm文件被独立出来了。。话说怎么把WinAPIEx_3.0.chm的信息添加到帮助文档里呢
页:
[1]
2