• Open Menu Close Menu
  • Apple
  • Shopping Bag
  • Apple
  • Mac
  • iPad
  • iPhone
  • Watch
  • TV
  • Music
  • Support
  • Search apple.com
  • Shopping Bag
 

Lists

Open Menu Close Menu
  • Terms and Conditions
  • Lists hosted on this site
  • Email the Postmaster
  • Tips for posting to public mailing lists
Sending launch and quit Apple Events: Crazy Connection Errors
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Sending launch and quit Apple Events: Crazy Connection Errors


  • Subject: Sending launch and quit Apple Events: Crazy Connection Errors
  • From: Jerry Krinock <email@hidden>
  • Date: Tue, 7 Jul 2009 05:21:02 -0700

I need to be able to quit and re-launch other applications, and have been getting all kinds of weird behavior. Maybe if someone could explain this one little test case I've isolated, it would be a big help.

The code below attempts to launch TextEdit, wait 5 seconds, quit TextEdit, wait 5 seconds, repeat forever. I get a launch, a quit, and a launch. But when it tries to quit for the second time, AESendMessage returns a -609 "Connection Invalid" error. I imagine this is because it is trying to connect to the application instance that it had quit the first time.

Documention of AESendMessage implies that recent versions of AppleScript will automatically try and reconnect, and that there is no more option to set.

How can I get it to forget the old connection and make a new one?

Thanks,

Jerry

P.S. I'm having another issue too. Under some conditions, if I launch an application using the NSWorkspace method, it will quit (quietly, no crash) as soon as my application resumes normal activity. I'm saving that for another post, unless someone has an "Aha!".

I've also tried using NSAppleScript and Scripting Bridge but have had similar problems.


#import <Cocoa/Cocoa.h>

void LaunchAndSleep(NSString* bundleIdentifier, float seconds) {
NSLog(@"Launching") ;
BOOL ok ;
ok = [[NSWorkspace sharedWorkspace] launchAppWithBundleIdentifier:bundleIdentifier
options:0
additionalEventParamDescriptor:nil
launchIdentifier:NULL] ;
NSLog(@"Launch success = %d", ok) ;
NSLog(@"Sleep after launch") ;
usleep(seconds * 1e6) ;


}

void QuitAndSleep(NSString* bundleIdentifier, float seconds) {
NSLog(@"Quitting") ;
const char* identifier = [bundleIdentifier UTF8String] ;
NSAppleEventDescriptor *as ;
as = [NSAppleEventDescriptor descriptorWithDescriptorType:typeApplicationBundleID
bytes:identifier
length:strlen(identifier)];
NSAppleEventDescriptor *ae ;
ae = [NSAppleEventDescriptor appleEventWithEventClass:kCoreEventClass
eventID:kAEQuitApplication
targetDescriptor:as
returnID:kAutoGenerateReturnID
transactionID:kAnyTransactionID];
AppleEvent *quitApplicationAppleEventPtr = (AEDesc*)[ae aeDesc];
if (quitApplicationAppleEventPtr) {
OSStatus err = AESendMessage(quitApplicationAppleEventPtr,
NULL,
kAENoReply,
kAEDefaultTimeout) ;
NSLog(@"Quit err = %d", err) ;
}
NSLog(@"Sleep after quit") ;
usleep(seconds * 1e6) ;


}

int main (int argc, const char * argv[]) {
    NSAutoreleasePool* pool = [[NSAutoreleasePool alloc] init];

    NSString* bundleIdentifier = @"com.apple.TextEdit" ;

    while (YES) {
        LaunchAndSleep(bundleIdentifier, 5) ;
        QuitAndSleep(bundleIdentifier, 5) ;
    }

    [pool release] ;
}


_______________________________________________

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


  • Follow-Ups:
    • Re: Sending launch and quit Apple Events: Crazy Connection Errors
      • From: Michael Nickerson <email@hidden>
  • Prev by Date: Re: AsyncSocket. Troubles with MTMessageBroker didReceiveData
  • Next by Date: Bound array item is repeatedly copied and collected while scrolling table view
  • Previous by thread: Re: *** -[NSBundle Load] : Error loading code
  • Next by thread: Re: Sending launch and quit Apple Events: Crazy Connection Errors
  • Index(es):
    • Date
    • Thread