You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

罗技Lua脚本需求:单键实现单击与长按自动触发不同操作

罗技鼠标10号按键脚本修改方案

要实现长按200ms无需松开按键就触发Win+V,同时单击触发Ctrl+V,需要通过定时器+按键状态检查调整原脚本逻辑,核心是在按键按下后主动定时判断状态,而非等待松开后再执行判断。

修改后的完整脚本

-- 全局变量记录状态:是否已触发长按动作
local hasTriggeredLongPress = false

function OnEvent(event, arg)
    OutputLogMessage("event = %s, arg = %s\n", event, arg)
    
    if event == "MOUSE_BUTTON_PRESSED" and arg == 10 then
        hasTriggeredLongPress = false
        -- 设置200ms定时器,到时检查按键是否仍处于按住状态
        SetTimer("CheckLongPress", 200)
    elseif event == "MOUSE_BUTTON_RELEASED" and arg == 10 then
        -- 清除定时器,避免短按后定时器延迟触发
        ClearTimer("CheckLongPress")
        -- 仅当未触发过长按动作时,执行单击的Ctrl+V
        if not hasTriggeredLongPress then
            PressKey("lctrl")
            PressAndReleaseKey("V")
            ReleaseKey("lctrl")
            OutputLogMessage("Triggered Ctrl+V on short press\n")
        end
    end
end

-- 定时器触发的长按检查函数
function CheckLongPress()
    ClearTimer("CheckLongPress") -- 确保定时器仅执行一次
    -- 检查10号按键是否仍处于按下状态
    if IsMouseButtonPressed(10) then
        hasTriggeredLongPress = true
        -- 立即触发Win+V
        PressKey("lgui")
        PressAndReleaseKey("V")
        ReleaseKey("lgui")
        OutputLogMessage("Triggered Win+V on long press\n")
    end
end

关键修改说明

  • 新增状态标记:用hasTriggeredLongPress变量记录是否已触发长按动作,避免松开按键时重复执行Win+V。
  • 定时器主动检查:按下按键时启动200ms定时器,到时自动执行检查函数,主动判断按键是否仍按住,满足条件则立即触发Win+V。
  • 松开逻辑优化:松开按键时先清除定时器,防止短按后定时器延迟触发;仅当未触发过长按动作时,才执行单击的Ctrl+V。

内容的提问来源于stack exchange,提问作者AINER

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.26 08:05:13