Re: Using Terminal within Cocoa App.
Re: Using Terminal within Cocoa App.
- Subject: Re: Using Terminal within Cocoa App.
- From: "Bruce Johnson" <email@hidden>
- Date: Wed, 16 Jan 2008 08:16:13 -0800
check out the open source OS X terminal application iTerm (
http://iterm.sourceforge.net/) It has a terminal framework that you can
embed into your cocoa app. When it is properly set-up you can
programatically send terminal commands to the embedded iTerm just as if you
were typing it in yourself.
On Jan 16, 2008 6:37 AM, has <email@hidden> wrote:
> Caroline wrote:
>
> > I want to run some App by using Terminal script.
>
>
> If you're wanting to run shell scripts in Terminal (as opposed to just
> executing them directly via NSTask), you need to send Terminal a 'do
> script' event. Example:
>
> OSStatus DoTerminalScript(char *utf8Script) {
> /*
> * Run a shell script in Terminal.app.
> * (Terminal.app must be running first.)
> */
> char *bundleID = "com.apple.terminal";
> AppleEvent evt, res;
> AEDesc desc;
> OSStatus err;
>
> // Build event
> err = AEBuildAppleEvent(kAECoreSuite, kAEDoScript,
> typeApplicationBundleID,
> bundleID, strlen(bundleID),
> kAutoGenerateReturnID,
> kAnyTransactionID,
> &evt, NULL,
> "'----':utf8(@)", strlen(utf8Script),
> utf8Script);
> if (err) return err;
> // Send event and check for any Apple Event Manager errors
> err = AESendMessage(&evt, &res, kAEWaitReply, kAEDefaultTimeout);
> AEDisposeDesc(&evt);
> if (err) return err;
> // Check for any application errors
> err = AEGetParamDesc(&res, keyErrorNumber, typeSInt32, &desc);
> AEDisposeDesc(&res);
> if (!err) {
> AEGetDescData(&desc, &err, sizeof(err));
> AEDisposeDesc(&desc);
> } else if (err == errAEDescNotFound)
> err = noErr;
> return err;
> }
>
> To launch Terminal.app, use -[NSWorkspace launchApplication:],
> LSOpenApplication() or similar.
>
>
> If you need to do anything more complex, I'd recommend using a high-
> level bridge such as objc-appscript <
> http://appscript.sourceforge.net/objc-appscript.html
> > or Leopard's Scripting Bridge.
>
> HTH
>
> has
> --
> http://appscript.sourceforge.net
> http://rb-appscript.rubyforge.org
>
> _______________________________________________
>
> Cocoa-dev mailing list (email@hidden)
>
> Please do not post admin requests or moderator comments to the list.
> Contact the moderators at cocoa-dev-admins(at)lists.apple.com
>
> Help/Unsubscribe/Update your Subscription:
>
> This email sent to email@hidden
>
--
----
Bruce Johnson
email@hidden
_______________________________________________
Cocoa-dev mailing list (email@hidden)
Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden