我有一个脚本,我在其中定义了一些热键。他们每个人都应该在定义的位置模拟鼠标点击(有按钮,我在 INI 文件中定义位置)。
我有一个按钮的问题 - 通常,当我通过脚本模拟鼠标点击时一切正常,但是当我想同时点击这个按钮时,当它被按下时,新卡会在网络浏览器中打开。
当我手动使用鼠标并单击这个有问题的按钮时,新卡没有打开。
我只是找不到解决此问题的方法-我尝试查找是否可以锁定打开新卡的可能性或类似的东西,但我没有找到任何东西...
我在两个向量中定义的所有热键:
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 文件加载。