如何在AppleScript中发送菜单栏应用程序(不含菜单栏菜单项)命令?
我想用AppleScript命令控制应用程序(Shady.app
)。不幸的是,它没有标准菜单栏文件,例如文件,编辑,视图等。如何在AppleScript中发送菜单栏应用程序(不含菜单栏菜单项)命令?
我的目标是以某种方式通过AppleScript向应用程序发出命令,以便它将切换“打开黑幕”&“关闭黑幕关闭”命令:
注:‘打开黑幕开’是关断状态,并将其变为‘关闭黑幕关’黑幕时处于接通状态。
如何创建一个脚本,基于它在AppleScript中的当前状态切换这两个方向?还是有比AppleScript更好的方式来以编程方式控制它?
你可以通过Keyboard Maestro这样做。这里有一个形象展示你想要什么行动:
为了记录在案,我也认为这是如此真棒,我还包括一个方法来创建一个变暗/减轻全球快捷:
你还必须拥有“显示停靠图标”系统偏好设置中开启这个工作!
请参阅this post在论坛上获取更多信息。我会继续和它贴在这里,以及为了方便起见,并规避链接腐:
sonicly:
我有一个运行只在菜单栏的应用程序的应用程序。它有一个简单的命令,基本上是“打开应用程序”/“关闭应用程序”。有没有办法让Keyboard Maestro设置一个全局热键来启动这个应用程序的命令?
我只是碰到这个话题既解决您的问题跑了:osx - How to send a menubar app (with no menubar menu items) a command in AppleScript? - Stack Overflow
我不知道,如果你是OP或没有,我没有测试过建议的解决方案。但也许它至少会让你开始。
sonicly:
所以我可以使它显示在Dock中,并与我能够设置工作的键盘快捷键......但是我必须先获得焦点上的应用程序(即,cmd-tab)。这是一个麻烦,我宁愿只是发出像命令选项shift-space这样的东西来打开它,然后再次切换它。这似乎是可行的与KM,但我不知道如何让艺术大师做本身
这是KM非常简单,只需使用
另一种选择是使用Select or Show a Menu Item action (KM Wiki),但我不确定它是否会在这种情况下工作。
通过短切发送命令的标准方法是:
System Preferences > Keyboard > Shortcuts > App Shortcuts
点击+
并选择黑幕,那么你就可以定义短切你想用。请记住,您需要使用⌘ + 选项卡先切换到Shady,然后使用快捷方式。
如果您使用像FastScripts这样的应用程序,那么您可以创建一个全局快捷方式,而不必先切换到应用程序,如果应用程序没有焦点,有时会更好。
非常有趣。我正在寻找后者的GLOBAL快捷方法,所以是的......我通常运行Shady而没有Dock图标,所以它不是我可以切换到的,因此为什么第一个选项不是最佳选择。 – ylluminate
FastScripts上的良好通话! – ylluminate
这AppleScript的将 “打开黑幕关”
tell application "System Events"
try
click menu item "Turn Shady Off" of menu 1 of menu bar item "Shade" of menu bar 1 of application process "Shady"
click menu bar item 1 of menu bar 2 of application process "Shady"
end try
end tell
这AppleScript的将 “打开黑幕论”
tell application "System Events"
try
click menu item "Turn Shady On" of menu 1 of menu bar item "Shade" of menu bar 1 of application process "Shady"
click menu bar item 1 of menu bar 2 of application process "Shady"
end try
end tell
假设它是在状态栏中正在运行。
这将打开和关闭
on toggle()
tell application "System Events"
try
click menu item "Turn Shady On" of menu 1 of menu bar item "Shade" of menu bar 1 of application process "Shady"
end try
try
click menu item "Turn Shady off" of menu 1 of menu bar item "Shade" of menu bar 1 of application process "Shady"
end try
click menu bar item 1 of menu bar 2 of application process "Shady"
end tell
end toggle
toggle()
保存它作为一个应用程序在ScriptEditor或在Automator的服务或任何你选择。不需要FastScripts。
有时我更喜欢使用两个单独的脚本,而不是一个带有条件的脚本。这样我可以对每个脚本使用听写命令。一个增强的听写命令“Turn Shady On”,另一个用于“Turn Shady Off” – wch1zpink
这真是个好主意!不幸的是,由于某种原因,听写在我的系统上超慢,这是不可行的。你还可以提供切换方法以及@ wch1zpink? – ylluminate
这真的太棒了。非常感谢通过屏幕截图的详细说明! – ylluminate