I'm trying to convert this existing AppleScript script:
tell application "System Events"
make login item with properties {path:"/Applications/Application.app", hidden:false"}
end tell
return
Here is what I have so far:
#!/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)
}
I am stuck at the following line however, as I don't actually know what to pass to the new:
property, I think the other properties are correct.
new: 'LoginItem',
I hope someone can point me in the right direction.
Make new
doesn't work in JXA.
Use theApp.TheClassName({somePropertyName: "someValue"})
to create object.
After that, use theApp.theClassNameWith_s.push(theObject)
to append the object to the array
Example:
var systemEvents = Application('System Events') logItemObj = systemEvents.LoginItem({path: "/Applications/Preview.app", hidden: false}) systemEvents.loginItems.push(logItemObj)
kind
and name
, these properties are read only.