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 ... 感謝您的幫助! –