Logitech dpi shift 使用修饰键

我以为用 Logitech lua 实现这个功能会比较容易。 基本上,我想让左 shift 键按下时可以升高我的 dpi。但是这没有任何作用。我是不是忘记了什么,或者键盘必须是 Logitech 键盘才能让 lua 识别左 shift 按键?

function OnEvent(event, arg)
   if IsModifierPressed("lshift") then
      PlayMacro("DPI Up")
   end
end

显然,如果 Logitech 允许用一个简单的更新来将键盘上的所有键都编程,就像其他竞争软件那样,而不仅仅是一些 g 键,这将更容易实现。

更新

在 reWASD 中将 rshift 和 ralt 分配给所需的键。

function OnEvent(event, arg)
   while event == "PROFILE_ACTIVATED" do
      if IsModifierPressed("rshift") then
         PlayMacro("DPI Up")
      end
      Sleep(10)
      if IsModifierPressed("ralt") then
         PlayMacro("DPI Down")
      end
      Sleep(10)
   end
end

原文链接 https://stackoverflow.com/questions/69939845

点赞
stackoverflow用户1847592
stackoverflow用户1847592

如果你只需要从脚本中更改 DPI,那么可以一直待在 OnEvent 中(你将无法处理事件)。

该脚本在按下左 Shift 时增加 DPI(左 Shift 可以由其他软件模拟)。

在 CapsLock 开启的情况下,该脚本可用。

打开 CapsLock 并生成一个事件(在 Logitech 鼠标上按下鼠标右键或在 Logitech 键盘上按下任何重新映射的 G 键)以启动脚本。

在退出游戏之前关闭 CapsLock。

function OnEvent(event, arg)
 if event == "PROFILE_ACTIVATED" then
   -- 一些代码
 else
   while IsKeyLockOn("capslock") do
      if IsModifierPressed("lshift") then
         PlayMacro("DPI Up")
         repeat
            Sleep(30)
         until not IsModifierPressed("lshift")
         PlayMacro("DPI Down")
      end
      Sleep(30)
   end
 end
end

更新

我假设你只在没有按下左 Shift 的情况下按下 MB4。

local prev_btn4

function OnEvent(event, arg)
   repeat
      if IsKeyLockOn("capslock") then
         if IsModifierPressed("lshift") then
            PlayMacro("DPI Up")
            repeat
               Sleep(30)
            until not IsModifierPressed("lshift")
            PlayMacro("DPI Down")
         end
      end
      Sleep(30)
      local btn4 = IsMouseButtonPressed(4)
      if btn4 and not prev_btn4 then
         MoveMouseTo(46700,55000)
         Sleep(math.random(10, 20))
         PressAndReleaseMouseButton(1)
      end
      prev_btn4 = btn4
   until not IsKeyLockOn("capslock")
end
2021-11-14 08:14:21