我尝试在 Autohotkey 中解决这个问题,但没有成功
在一个程序中(从现在起称为 VP0),有一个热键Space Click n Drag to Left/Right
可以设置工具的最大尺寸
我希望使用与 VP0 中相同的热键,但Shift
使用Space
问题是 VP0 中有第二个原生热键,用于Shift Space Click n Drag to Left/Right
设置工具最小尺寸
问题是,如果我想在 AHK 中设置第一个 VP0 热键,我应该设置LShift
为Space
(VP0 工具最大尺寸),但是由于VP0 Tool Min Size = Shift Space
按下LShift
设置时VP0 Tool Max Size
它会设置VP0 Tool Min Size
,因为 AHK 检测到按下了 Shift 键。
我曾尝试使用...
SendInput {Shift Up}
SendEvent {Shift Up}
但它只会发送 Shift Up 几毫秒,然后 AHK 检测到 Shift 再次被按下,我该如何避免这种情况??我也尝试过下面的方法,但我想避免使用循环,因为它会在 Set Brush Max Size 和 Set Brush Min Size 之间快速切换。
; Increase/Decrease Tool Size
#If WinActive("ahk_exe Verve_painter.exe") && !GetKeyState("XButton1", "P") && !GetKeyState("Space", "P")
LShift & LButton:: ; INCREASE TOOL MAX SIZE
Tooltip, AAAAAAAAAAAAAAAAAA Shift LButton
SendEvent {Shift Up}
SendInput {Space Down}
Click Down
While GetKeyState("LButton","P")
{
SendEvent {Shift Up}
}
Tooltip, BBBBBBBBBBBBBBBBBBBBBB LButton was realeasedd
SendInput {Space Up}
Click Up
Return
$^+LButton:: ; INCREASE TOOL MIN SIZE
;Tooltip, Shiiiit Ctrl Shift LButton
SendInput {Ctrl Up}
Sleep 10
SendInput {Shift Down}
SendInput {Space Down}
Click Down
KeyWait, LButton
SendInput {Space Up}
SendInput {Shift Up}
Click Up
Tooltip Ctrl SHift LButton was released
Return
#If
谢谢高级。
答案1
尝试重新映射 Shift 和 Ctrl:
#If WinActive("ahk_exe Verve_painter.exe") && GetKeyState("Shift", "P")
; Shift+1
$1::
KeyWait, Shift
SendInput, {Shift Up}
MsgBox, Shift+1
return
; Shift+2
$2::
KeyWait, Shift
SendInput, {Shift Up}
MsgBox, Shift+2
return
#If WinActive("ahk_exe Verve_painter.exe")
Shift::Space
Ctrl::Shift
#If