python可以在Mac上打开应用程序并执行操作吗?

时间:2018-08-18 23:44:09

标签: python macos

我想让我的代码开放时间并打电话给某人 我目前可以使用打开程序  导入子流程                 subprocess.call([[/ usr / bin / open“,” -W“,” -n“,” -a“,” /Applications/Facetime.app“])但我想更进一步,自动进行通话。

1 个答案:

答案 0 :(得分:2)

tl; dr:您可能想这样做:

subprocess.call(["/usr/bin/open", "-W", "-n", "-a", "/Applications/Facetime.app",
                 "tel://{}".format(number)])

或者,如果您希望它进行纯音频呼叫,请在末尾添加&audio=yes


只有少数应用程序具有命令行工具来控制它们。许多macOS应用程序都具有功能强大的脚本界面,该界面应由Automator和/或AppleScript使用,但可以从Python轻松使用,但FaceTime则不然。而且,即使尝试使用UI事件脚本(您可以在其中模拟鼠标点击等),对于FaceTime也很痛苦。

但是FaceTime 确实知道如何处理tel URL方案。因此,如果您通过tel://8675309命令(或open脚本界面,Automator或Safari等)将其移交SystemEvents,它将拨打8675309。

实际上,默认情况下,它不会拨打电话,它会弹出一个对话框,询问您是否要拨打电话,就像单击电子邮件或便笺中的电话号码一样。据我所知,您不能从呼叫方更改它,只能将全局首选项设置为始终拨号而不弹出该对话框。而且我认为,自10.8左右以来,人们就一直不喜欢改变。 (我敢打赌,在“不同询问”中有一个关于如何更改它的当前信息的问题,但我不知道它是什么。)


顺便说一句,如果您只是open tel://8675309而未指定应用程序,则将打开默认应用程序tel的任何应用程序,通常是FaceTime,但有时是Skype或旧版本的Google Voice ,或其他各种第三方程序将接管。因此,如果您想在更改默认设置后将脚本切换到Skype,请不要使用-a位;如果您无论如何要使用FaceTime,请保留它。