Autohotkey检测触摸板划词

autohotkey该如何检测触摸板划多个词的事件,我目前实现了鼠标用于划词并发送快捷键的操作,但是触摸板划词逻辑和鼠标不同,鼠标划词是左键单击按住拖动然后释放,触摸板则是轻敲两次拖动然后再轻敲一次。
下面是我实现的在sumatraPDF上鼠标划词的逻辑,如果要改成也支持触摸板该怎么操作,求助各位大佬:

;saladict 划译插件[AHK]
;version 0.9
;[email protected]
;2016-01-08
;GUI及其他功能完善有待日后空闲
;========使用说明========
;pause键 启用/停用 脚本
;鼠标拖选、双击选词翻译
;~ http://weibo.com/1928931362/Dcdvnphx7?type=comment
;~ https://0paste.com/8133

; SetTitleMatchMode, 2
programs := ["SumatraPDF.exe", "mailmaster.exe"]
If WinActive("沙拉查词-独立查词窗口") || CheckProgramActive(programs) {
    Pause::Suspend

    ~LButton::
        ; WinClose, "沙拉查词-独立查词窗口"
        If !CheckProgramActive(programs) {
            return
        }
        oldClipboard := Clipboard
        WriteLog("oldClipboard: " . oldClipboard)
        CoordMode, Mouse, Screen
        SetKeyDelay 0, 10

        MouseGetPos, x1, y1
        output := "previous coordinate: " . x1 . " , " . y1
        WriteLog(output)
        ; DebugMessage("previous coordinate: ", %x1%, " , ", %y1%)
        KeyWait, LButton
        MouseGetPos, x2, y2
        output := "current coordinate: " . x2 . " , " . y2
        WriteLog(output)

        if (x1<>x2 or y1<>y2) {
            gosub, Copy
        }
        else if (A_priorHotKey = "~LButton" and A_TimeSincePriorHotkey < 1000){
            WriteLog("enter double click")
            gosub, Copy
        }
    return

    Copy:
        Send ^c
        Send ^+s
        output := "clipboard: " . Clipboard
        Clipboard := oldClipboard
        WriteLog(output)
        ; WriteLog("clipboard: " . %Clipboard%)
    return
}

; WriteLog(% "clipboard: ". %Clipboard%)
; If WinActive("ahk_exe notepad++.exe") {
;     ^x::
;     WinGetActiveTitle, Title
;     arr := StrSplit(Title, " ")
;     Run, C:/Users/Administrator/GolandProjects/autocopy/main.exe arr[0]
;     return
; }

CheckProgramActive(programs) {
    flag := False
    for index, ele in programs {
        If WinActive("ahk_exe " ele) {
            flag = True
        }
    }
    return flag
}

WriteLog(text) {
    FileAppend, % A_NowUTC ": " text "`n", logfile.txt ; can provide a full path to write to another directory
}

; #IfWinActive, ahk_exe notepad++.exe
; ^x::
; WinGetActiveTitle, Title
; arr := StrSplit(Title, " ")
; Run, C:/Users/Administrator/GolandProjects/autocopy/main.exe arr[0]
; return

~!Tab::
    ; If CheckProgramActive(programs) {
    ;     Send {Alt+Tab}
    ;     Send {Tab}
    ; } else {
    ;     Send {Alt+Tab}
    ; }
    ; NextWin := WinExist("A", "Next")
    ; MsgBox, nextwin:%NextWin%
    ; MsgBox, fdskfdsf
    ; WriteLog("detect shortcut Alt+Tab")
    ; WinGetTitle, WinTitle, %WinTitle%
    ; MsgBox, 窗口标题为:%WinTitle%
    ; WriteLog("win title: " . WinTitle)
    ; If WinActive("沙拉查词-独立查词窗口") {
    ;     WriteLog("enter saladcit window")
    ;     Send, !TabTab
    ;     ; Send {Alt+Tab}
    ; }
    Sleep, 800
    programs := ["SumatraPDF.exe", "mailmaster.exe"]
    If WinActive("沙拉查词-独立查词窗口") {
        WriteLog("enter saladcit window")
        ; MsgBox, "enter saladcit window"
        Send, {Alt Down}{Tab}
        Sleep 300
        Send, {Tab}{Alt Up}
    }
return

这得看autohotkey有没有触摸板相关的API吧

我查了下是没有的,我这是想模拟鼠标左键点击的操作,因为触摸板也会触发鼠标左键操作的

很简单,可以加个判定条件,
如果鼠标左键事件伴随着鼠标箭头位置突变(触摸操作会引起鼠标位置突变)
那么判定这次鼠标左键事件是一次触摸事件。
后面就好办了

我也是这么想的,只不过我没有成功实现这个触摸板的划词逻辑,借助chatgpt也不行

我记得autohotkey论坛有个现成能借用的 我找找

鼠标在主显示器上移动 - 自动热键社区 (autohotkey.com)

试试上述方案,触摸屏触发的按键 按下和抬起的间隔时间很短或者是0。

之前还看到个类似的,找不到了

好的,有时间我再试试,非常感谢