¿Cómo puedo ejecutar un Applescript simple desde un progtwig C ++?

Me gustaría ejecutar el comando Applescript para tell application "Finder" to open POSIX file */path/to/somefilename* desde un progtwig C ++. Parece que podría querer usar OSACompileExecute , pero no he podido encontrar un ejemplo de cómo usarlo. Sigo encontrando ejemplos de cómo usar el OSACompile terminal OSACompile . ¿Puede alguien proporcionar un ejemplo o un enlace a un ejemplo?

Ok, el truco era no molestarnos en intentar comstackr y ejecutar Applescript, sino simplemente usar el osascript sistema osascript :

  sprintf(cmd, "osascript -e 'tell app \"Finder\" to open POSIX file \"%s/%s\"'", getcwd(path, MAXPATHLEN), file); system(cmd); 

path y el file son ambas variables char [].

Obtuve la pista de este extracto de Applescript: The Definitive Guide .

Aquí hay un ejemplo de la función C para leer un comentario Obtener información del buscador usando AppleScript.

Podrías modificarlo para lo que quieras.

 NSString * readFinderCommentsForFile(NSString * theFile){ /* Need to use AppleScript to read or write Finder Get Info Comments */ /* Convert POSIX file path to hfs path */ NSURL * urlWithPOSIXPath = [NSURL fileURLWithPath:theFile]; NSString * hfsStylePathString = (__bridge_transfer NSString *)CFURLCopyFileSystemPath((__bridge CFURLRef) urlWithPOSIXPath, kCFURLHFSPathStyle); /* Build an AppleScript string */ NSString *appleScriptString = @"tell application \"Finder\"\r get comment of file "; appleScriptString = [appleScriptString stringByAppendingString:@"\""]; appleScriptString = [appleScriptString stringByAppendingString:hfsStylePathString]; appleScriptString = [appleScriptString stringByAppendingString:@"\""]; appleScriptString = [appleScriptString stringByAppendingString:@"\r end tell\r"]; NSString *finderComment; NSAppleScript *theScript = [[NSAppleScript alloc] initWithSource:appleScriptString]; NSDictionary *theError = nil; finderComment = [[theScript executeAndReturnError: &theError] stringValue]; NSLog(@"Finder comment is %@.\n", finderComment); return finderComment; 
    Intereting Posts