我在同一台计算机上运行两个Skype:一个正常启动,另一个在终端下以不同的用户帐户B启动。
然后,我想使用Applescript告诉应用程序“Skype”(由帐户B启动)做某事。我应该如何具体说明在Applescript中由帐户B启动的Skype实例?
非常感谢!
MIU
答案 0 :(得分:1)
如果您在Mac上启用了远程苹果事件,显然可以在不重复/重命名应用程序的情况下完成此操作。 (这是共享下的系统偏好,需要管理员许可,但您可以限制允许哪些用户发送苹果事件,出于安全原因我建议这样做。)
完成后,您应该可以执行以下操作:
tell application "Skype" of machine "eppc://userB@127.0.0.1"
-- whatever
end tell
userB
当然是用户B的用户名,127.0.0.1
表示“此计算机”或更正确的“本地主机”。
答案 1 :(得分:0)
我认为你不能。但是我想到了解决方法。这是个主意。您可以通过多种方式定位应用程序,其中一种方法是通过其包标识符。例如,要定位TextEdit,你可以这样做......
tell application id "com.apple.TextEdit" to activate
考虑到这一点,您的2个运行版本的Skype需要具有不同的捆绑ID,以便您可以单独定位它们。现在情况并非如此,但你可以做到这一点。只需复制skype应用程序(制作副本)。然后打开副本的包内容,在那里打开“info.plist”文件,找到包标识符键,并将其更改为其他内容。现在你有2个版本的skype和不同的bundle id,这意味着你可以单独定位它们。
我使用TextEdit检查了这个。我制作了一个副本并将其包ID设置为“com.apple.myTextEdit”。我打开了两个应用程序,可以单独定位它们。因此,用户B可以使用“com.apple.myTextEdit”,普通用户可以使用“com.apple.TextEdit”......反之亦然。
这不是一个理想的解决方案,但它可行。
答案 2 :(得分:0)
我最终通过创建两个Skype.app副本来解决它,并将新的一个重命名为“Skype2.app”。用户A(通过终端)由用户A和Skype2.app启动Skpye.app。然后,在Applescript
中tell application "Skype"
-- do something for user A
end tell
tell application "Skype2"
-- do something else for user B
end tell