【问题标题】:Application.make in JavaScript for Automation (JXA)用于自动化的 JavaScript (JXA) 中的 Application.make
【发布时间】:2017-02-10 07:09:05
【问题描述】:

我正在尝试转换这个现有的 AppleScript 脚本:

tell application "System Events"
  make login item with properties {path:"/Applications/Application.app", hidden:false"}
end tell
return

这是我目前所拥有的:

#!/usr/bin/env osascript -l JavaScript

'use strict';

ObjC.import('stdlib')

function run(argv) {

  var systemEvents = Application('System Events')

  systemEvents.make({
    new: 'LoginItem',
    at: systemEvents.loginItems,
    withProperties: {
      name: "Application",
      path: "/Applications/Application.app",
      hidden: false,
      kind: "Programm"
    }
  })

  $.exit(0)
}

然而,我被困在下面一行,因为我实际上不知道将什么传递给new: 属性,我认为其他属性是正确的。

 new: 'LoginItem',

我希望有人能指出我正确的方向。

【问题讨论】:

    标签: macos applescript javascript-automation


    【解决方案1】:

    Make newJXA 中不起作用。

    使用theApp.TheClassName({somePropertyName: "someValue"}) 创建对象。

    之后,使用theApp.theClassNameWith_s.push(theObject) 将对象追加到数组中

    例子:

    var systemEvents = Application('System Events')
    logItemObj = systemEvents.LoginItem({path: "/Applications/Preview.app", hidden: false})
    systemEvents.loginItems.push(logItemObj)
    
    • 不要使用kindname,这些属性是只读的。

    【讨论】:

    • 谢谢。可惜make不起作用,但至少有办法。
    • 非常感谢您,我已经为此工作了好几个小时,因为我也不知道 make 在 JXA 中不起作用。
    • 还是这样吗?我正在尝试使用“数据库事件”应用程序创建数据库、记录和字段的解决方案 - 但我收到 Error: AppleEvent handler failed 错误。
    • 如果你想在“数据库事件”中创建一些东西,请使用 AppleScript ,因为不可能从 JXA 脚本(错误)。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-08-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多