Application.make 在 JavaScript 中用于自动化 (JXA)

Application.make in JavaScript for Automation (JXA)

我正在尝试转换这个现有的 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',

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

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,这些属性是只读的。