MacOS: how to run AppleScript script from a Qt app?
-
QProcess::exitStatus(), 0;
QProcess::errorString() , Unkonwn error;my code works imperfect ( which is system preferences->Network; but I want it to be system preferences->Network->advanced...->Proxies)
And I find chrome does it in a different way, not applescript maybe.(you could check it out by clicking settings->show advanced settings->change proxy settings)
because I cannot find chrome.app at System Preferences->Security&Privacy->Privacy->Accessibility(Allow the apps below to control youe computer). -
I suggest you try debugging in the terminal, where you'd get warnings/errors right away, and work your way from there.
As for Chrome and other browsers: I strongly believe they take their default settings from the system ones, ie. those presented in the System Preferences.
-
Hi,
From a look at osascript's documentation, I would say that you are not feeding it correctly. I think you should be using several -e to build your multiline script.
Hope it helps
-
Since you have an example working, can you compare what parameters you give to oascript ? There may be something like a missing "-" to tell oascript to read from stdin
-
Sure, although it seems very identical to me. I think the problem is in the script itself.
@QStringList args;
QProcess p;
scriptText =
"tell application "iTunes"\n"
"if not (exists user playlist "%1") then\n"
" make new user playlist with properties {name:"%1"}\n"
"end if\n"
"set newFile to (POSIX file "%2")\n"
"set newTrack to (add newFile to playlist "%1")\n"
"set comment of newTrack to "%3""
"\n"
"end tell";
fileName = fileName.replace(""", "\"");
args << "-l" << "AppleScript";
scriptLauncherBinary = "/usr/bin/osascript";
p.start(scriptLauncherBinary, args);
p.write(scriptText.arg(plName).arg(fileName).arg(getComment()).toUtf8());
p.closeWriteChannel();@ -
I mean the way how chrome opens the network setting dialog, not how it sets proxies...have a look "here":http://dougscripts.com/itunes/2013/10/os-x-10-9-applescripts-and-accessibility-control/ so if chrome uses applescript to open the proxies settings dialog, it should be in the list of "Allow the apps below to control your computer". I am very curious how chrome could skip it.
[quote author="janfaroe" date="1390211636"]
As for Chrome and other browsers: I strongly believe they take their default settings from the system ones, ie. those presented in the System Preferences. [/quote] -
Thanks anyway, that's very kind of you for giving me the advice.
[quote author="janfaroe" date="1390294144"]Yes, but why would you be interested in opening Chromes network settings, if the system settings can override it?
Edit: Ah, because of the "allow the apps below..." setting. Sorry, not an Applescript expert.[/quote]
-
About running such a script as a QProcess : I am trying to make it work in a sandbox environment (App Store), but I'm not sure wether the main app's entitlements apply to the osascript QProcess launched ? I'm getting access violation errors but I'm not sure if it's because my app is not signed correctly with entitlements, or if maybe it is because I must figure out a way to get the entitlements to apply also to the subprocess...