1
我有一个脚本,我定义了一些热键。他们每个人都应该模拟鼠标点击定义的位置(有按钮,我在INI文件中定义位置)。Autoit在使用MouseClick时打开卡片()
我有一个按钮的问题 - 通常,当我模拟鼠标点击我的脚本时,一切正常,但是当我想同时点击这一个按钮时,当它被按下时,新卡被打开在网页浏览器中。
当我手动使用鼠标并单击此有问题的按钮时,新卡未打开。
我只是找不到如何解决这个问题 - 我试图找到,如果是possibble锁定可能打开新卡或类似的东西,但我没有发现任何东西......
所有热键我
Global $HotKeyArrayHotKeys[] = [ "^1", "^2", "^3", "^4",... ]
Global $HotKeyArrayLabels[] = [ "A", "B", "C", "D",... ]
下一步是使结构中的一个矢量:
For $i = 0 To $MaxInd-1 $HotKeyArray[$i] =
DllStructCreate($StructHotKey)
DllStructSetData ( $HotKeyArray[$i], "HotKey", string($HotKeyArrayHotKeys[$i]))
DllStructSetData ( $HotKeyArray[$i], "Label", string($HotKeyArrayLabels[$i]))
Next
结构的定义:
两个向量定义Global Const $StructHotKey = "struct;CHAR HotKey[3];CHAR Label[12];INT X;INT Y;INT CheckBoxNr;INT DataNumber;endstruct"
激活热键:
For $i = 0 To $MaxInd
HotKeySet(DllStructGetData ($HotKeyArray[$i], "HotKey")) ;
Next
和功能由他们打开:
Func UniversalFunc()
If @HotKeyPressed == DllStructGetData ($HotKeyArray[0], "HotKey") Then
MouseClick("left", DllStructGetData ($HotKeyArray[0], "X"), DllStructGetData ($HotKeyArray[2], "Y"), 1, 1)
Return 0
EndIf
For $i = 0 To $MaxInd-1
If @HotKeyPressed == DllStructGetData ($HotKeyArray[$i], "HotKey") Then
MouseClick("left", DllStructGetData ($HotKeyArray[0], "X"), DllStructGetData ($HotKeyArray[2], "Y"), 1, 1)
Sleep(50)
MouseClick("left", DllStructGetData ($HotKeyArray[$i], "X"), DllStructGetData ($HotKeyArray[$i], "Y"), 1, 7)
Return 0
EndIf
Next
Return 0
EndFunc
X和Y位置从INI文件加载。
控制修饰符是否搞乱了事情?在进行手动测试时,按住ctrl键查看是否得到相同的结果。 – Trevor
是啊...这是一个问题...我看到,只有这个按钮有不同的行为,当按Ctrl ... 感谢您的帮助! –