罗技 dpi 使用修饰符移位
Posted
技术标签:
【中文标题】罗技 dpi 使用修饰符移位【英文标题】:Logitech dpi shift using modifier 【发布时间】:2021-12-24 14:53:37 【问题描述】:我认为使用罗技 lua 相对容易做到这一点。 基本上,我想要它做的就是当我按下左移键时,它会向上移动我的 dpi。但这无济于事。我是否遗漏了什么或者键盘必须是罗技键盘才能让 lua 识别左移键?
function OnEvent(event, arg)
if IsModifierPressed("lshift") then
PlayMacro("DPI Up")
end
end
显然,如果罗技允许像其他所有竞争软件一样通过简单的 g hub 更新而不是几个 g 键来对键盘上的所有键进行编程,这将更容易做到。
更新
将 rshift 和 ralt 分配给 reWASD 中所需的键。
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
【问题讨论】:
也许我错了,但我不希望该软件可以与 G 系列硬件以外的任何东西一起使用。他们为什么要向非客户提供这个? 只有“少数 G 键”能够触发OnEvent
。因此,您应该将 DPI Shift 绑定到罗技鼠标上的任何按钮或罗技键盘上的任何 G 键。
like every other competitive software out there
- 没有竞争软件可以让你用 Lua 或其他语言编写脚本。
@Egor Skriptunoff 所有其他产品,如 razer、steelseries 和 corsair 都允许您重新映射键盘上的每个键。不像罗技不能引入这样的基本功能。重点是将 dpi shift 键绑定到“lshift”,然后可以在另一个软件中将其重新映射到我想要的键。这是罗技无能的一种变通方法。
@Piglet 也是我的想法,但我无法在网上找到任何东西来确认这是否适用于按下的修饰符,例如 alt、ctrl、shift。我很快就会有一个罗技键盘来测试它。
【参考方案1】:
如果您需要从脚本中更改 DPI,那么您可以永远留在 OnEvent
内(您将无法处理事件)。
此脚本在 Left Shift 按下时会增加 DPI (左移可以用其他软件模拟)。
脚本在 CapsLock 开启时有效。 打开 CapsLock 并生成一个事件(在 Logitech 鼠标上按鼠标右键或在 Logitech 键盘上按任何重新映射的 G 键)以启动脚本。 在退出游戏之前关闭 CapsLock。
function OnEvent(event, arg)
if event == "PROFILE_ACTIVATED" then
-- some code here
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
更新
我假设您仅在未按 Left 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
【讨论】:
非常感谢您的帮助。另外,如果我在此配置文件中有其他鼠标按钮的其他脚本行,我可以将 'if (event == "PROFILE_ACTIVATED") then' 放在 'while IsKeyLockOn' 之前吗?这是否意味着我可以删除 capslock 行?I have other lines of script in this profile for other mouse buttons
- 显示脚本的“其他行”。您可以处理PROFILE_ACTIVATED
事件,但不能处理其他事件。
这是我目前在游戏资料pastebin.com/b0pfKyyZ 中的内容。使用您提供的脚本,我可以使它看起来像这样吗? pastebin.com/362hH5PC。它有太多的结尾,忽略那些。
ermmm g915 tkl 甚至允许 lua 脚本吗?它无法识别 shift 或 caps lock press 或“if (event == "G_PRESSED" and arg == 1) then”之类的东西。我尝试了 f 而不是 g,但什么也没发生。
G_PRESSED
仅在重新映射 G 键时有效。为其分配一个自定义宏。以上是关于罗技 dpi 使用修饰符移位的主要内容,如果未能解决你的问题,请参考以下文章