Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Applescript 使用osascript时更改通知图标-e“;“显示通知”;_Applescript - Fatal编程技术网

Applescript 使用osascript时更改通知图标-e“;“显示通知”;

Applescript 使用osascript时更改通知图标-e“;“显示通知”;,applescript,Applescript,我正在尝试为emacs编写一个插件,该插件使用OSX的本机通知显示来显示通知 我遇到了终端通知程序,它可以工作,但它是一种依赖关系,不适用于所有mac电脑。另外,应该让用户知道他们需要安装软件包 我要做的是调用一个进程osascript-e,让它显示通知。问题是,更改其图标的唯一方法是从外部捆绑包。有没有办法让osascript-e显示我想要的内容 启动sudoosascript似乎可以做到这一点,但这似乎是一个糟糕的设计,我还需要找到每次传递根密码的方法 你不能。这根本不是一个向AppleSc

我正在尝试为emacs编写一个插件,该插件使用OSX的本机通知显示来显示通知

我遇到了
终端通知程序
,它可以工作,但它是一种依赖关系,不适用于所有mac电脑。另外,应该让用户知道他们需要安装软件包

我要做的是调用一个进程
osascript-e
,让它显示通知。问题是,更改其图标的唯一方法是从外部捆绑包。有没有办法让osascript-e显示我想要的内容


启动
sudoosascript
似乎可以做到这一点,但这似乎是一个糟糕的设计,我还需要找到每次传递根密码的方法

你不能。这根本不是一个向AppleScript公开的macOS功能

如果需要自定义图标,请考虑使用弹出式对话框,而不是通知中心弹出式窗口。通过超时和按钮,您可以重新创建大部分功能,但不包括集成和美观

在“显示对话框”中,如果希望使用标准图标:0、1或2(停止、注意或警告),可能不需要osascript作为显示图标的程序。例如,查找器:

osascript-e'tell application“Finder”'-e'activate'-e'display dialog“这是便笺图标。”带有图标note'-e'end tell'

或者不使用
告诉应用程序…
您可以通过直接引用来使用您选择的图标,例如终端应用程序的图标:

osascript-e'显示对话框“终端图标”,图标别名为“Macintosh HD:Applications:Utilities:Terminal.app:Contents:Resources:Terminal.icns”

我不确定你所说的“更改其图标的唯一方法是从外部捆绑包。是否有任何方法使
osascript-e
显示我想要的内容。”你到底想要什么?你试过什么

以下是苹果文档中的部分。

不幸的是:

显示通知

使用通知中心发布通知,包含标题、副标题和说明,并可选择播放声音

语法
显示通知
–文本,必填
带标题
–文本,可选
字幕
–文本,可选
声音名称
–文本,可选

(即使使用
tell应用程序“…”
trick from也会给您留下默认的通知图标。)


终端通知程序之所以可以
是因为据我所知,osascript并没有向其提供接口。

实际上,这是可能的

只需将脚本另存为应用程序,然后在应用程序的
Contents/Resources
文件夹中切换所需图标的
applet.icns
文件


从您的脚本发送的任何通知都将使用该图标。

对于像我一样对此感到困惑的读者,请注意:原始问题询问通知,但此处的两个示例都显示一个对话框(必须点击“确定+取消”按钮)。那么,为什么其他应用程序可以使用其自定义图标放置通知?比如:@frakman1其他应用程序不是问题的狭义主题AppleScripts。此外,如果通知的文本是动态的,也就是说,它会根据其他因素而变化,而不是硬编码到脚本中,您总是可以将要显示的文本复制到剪贴板,然后编写一个脚本,在通知中显示剪贴板。这不是我想要的,因为我希望从emacs中运行此脚本。。。但是谢谢!对于任何想了解更多细节的人。使用脚本编辑器应用程序创建一个新脚本,将
osascript-e
后面的内容放入脚本中,然后文件->导出。。。并选择应用程序作为“文件格式”,将所有其他选项保留为默认值(未选中)。然后,您可以在命令行上通过
open