Hammerspoon:持续向一个应用程序发送击键,同时正常使用其他应用程序
Hammerspoon: continuously send keystrokes to one application, while using others normally
好的,所以我有一个带有 Hammerspoon 的脚本,可以为我执行击键。简单例子:
hs.hotkey.bind({'cmd','alt','ctrl'}, "b", function()
hs.eventtap.keyStroke({}, "Left", 200000)
hs.eventtap.keyStroke({}, "Left", 200000)
hs.eventtap.keyStroke({}, "Right", 200000)
hs.eventtap.keyStroke({}, "Right", 200000)
end)
我知道我可以过滤此脚本以仅在特定应用程序中工作,但我的问题是:是否可以将这些击键发送到一个应用程序,而在另一个应用程序中正常使用我的物理键盘?就像发送击键一样 'in the background',所以它们没有在我当前使用的应用程序中注册。
您可以查询该应用程序,将其存储在一个变量中,然后使用它来将这些击键发送到该应用程序:
local myApp = hs.application.applicationsForBundleID('com.apple.finder')[1]
hs.eventtap.keyStroke({"cmd"}, "2", 200, myApp)
这会在延迟 200 微秒后将 CMD + 2 发送到 Finder 应用程序(更准确地说:第一个具有此包 ID 的应用程序)。
我可能会在击键绑定函数之外设置变量,这样它就不会在每次击键时发生,而是在开始时发生。
好的,所以我有一个带有 Hammerspoon 的脚本,可以为我执行击键。简单例子:
hs.hotkey.bind({'cmd','alt','ctrl'}, "b", function()
hs.eventtap.keyStroke({}, "Left", 200000)
hs.eventtap.keyStroke({}, "Left", 200000)
hs.eventtap.keyStroke({}, "Right", 200000)
hs.eventtap.keyStroke({}, "Right", 200000)
end)
我知道我可以过滤此脚本以仅在特定应用程序中工作,但我的问题是:是否可以将这些击键发送到一个应用程序,而在另一个应用程序中正常使用我的物理键盘?就像发送击键一样 'in the background',所以它们没有在我当前使用的应用程序中注册。
您可以查询该应用程序,将其存储在一个变量中,然后使用它来将这些击键发送到该应用程序:
local myApp = hs.application.applicationsForBundleID('com.apple.finder')[1]
hs.eventtap.keyStroke({"cmd"}, "2", 200, myApp)
这会在延迟 200 微秒后将 CMD + 2 发送到 Finder 应用程序(更准确地说:第一个具有此包 ID 的应用程序)。
我可能会在击键绑定函数之外设置变量,这样它就不会在每次击键时发生,而是在开始时发生。