FROM : Mitchell Hashimoto
DATE : Tue Jan 29 07:03:31 2008
Hi,
Thank you. I really actually don't play very many games at all I just
like doing these things because I always find that I learn much about
the OS this way =] really. But I actually want to launch the same
program with root access, is there a special way to do this? As far as
I know I can't launch two instances of my same program so how would I
go about doing this?
Mitch
On Jan 28, 2008 9:59 PM, Kyle Sluder <kyle.sluder+<email_removed>> wrote:
> On Jan 29, 2008 12:07 AM, Mitchell Hashimoto <<email_removed>> wrote:
> > NSString *fullPath = @"/Applications/Program.app/Contents/MacOS/Program";
>
> This seems odd. Is Program.app a separate application from your own
> (e.g. you're building a launcher to an existing, but separate, app)?
> If so, use NSWorkspace to get the path to the application you want.
> The Most Correct Way(TM) to do this would be -[NSWorkspace
> absolutePathForAppBundleWithIdentifier] (which you would pass the
> app's bundle identifier, a string in the form
> com.yourcompany.AppName), but -[NSWorkspace fullPathForApplication:]
> may suit you just fine (in which case you would pass "AppName", that
> is the app bundle's name without the extension).
>
> Once you have the path to the bundle, use NSBundle to get the path to
> the actual executable inside the bundle and append it to the string
> you got above. This is the path you pass to Authorization Services.
>
> > AuthorizationItem myItems[1];
> >
> > myItems[0].name = kAuthorizationRightExecute;
> > myItems[0].valueLength = [fullPath length];
> > myItems[0].value = [fullPath cStringUsingEncoding:NSASCIIStringEncoding];
> > myItems[0].flags = 0;
>
> Your use of -[NSString length] and -[NSString cStringUsingEncoding:]
> is troublesome. NSString has an instance method specifically for what
> you're trying to do: -fileSystemRepresentation. It returns a C string
> that's appropriate to be passed to the filesystem, regardless of funky
> Unicode characters in paths. You can use the C strlen() function to
> get the length of a C string (don't use -[NSString length] for this;
> it may not match up).
>
> HTH, and remember to use your powers for good, not evil. Cheaters
> just ruin the fun for the rest of us.
>
> --Kyle Sluder
>
DATE : Tue Jan 29 07:03:31 2008
Hi,
Thank you. I really actually don't play very many games at all I just
like doing these things because I always find that I learn much about
the OS this way =] really. But I actually want to launch the same
program with root access, is there a special way to do this? As far as
I know I can't launch two instances of my same program so how would I
go about doing this?
Mitch
On Jan 28, 2008 9:59 PM, Kyle Sluder <kyle.sluder+<email_removed>> wrote:
> On Jan 29, 2008 12:07 AM, Mitchell Hashimoto <<email_removed>> wrote:
> > NSString *fullPath = @"/Applications/Program.app/Contents/MacOS/Program";
>
> This seems odd. Is Program.app a separate application from your own
> (e.g. you're building a launcher to an existing, but separate, app)?
> If so, use NSWorkspace to get the path to the application you want.
> The Most Correct Way(TM) to do this would be -[NSWorkspace
> absolutePathForAppBundleWithIdentifier] (which you would pass the
> app's bundle identifier, a string in the form
> com.yourcompany.AppName), but -[NSWorkspace fullPathForApplication:]
> may suit you just fine (in which case you would pass "AppName", that
> is the app bundle's name without the extension).
>
> Once you have the path to the bundle, use NSBundle to get the path to
> the actual executable inside the bundle and append it to the string
> you got above. This is the path you pass to Authorization Services.
>
> > AuthorizationItem myItems[1];
> >
> > myItems[0].name = kAuthorizationRightExecute;
> > myItems[0].valueLength = [fullPath length];
> > myItems[0].value = [fullPath cStringUsingEncoding:NSASCIIStringEncoding];
> > myItems[0].flags = 0;
>
> Your use of -[NSString length] and -[NSString cStringUsingEncoding:]
> is troublesome. NSString has an instance method specifically for what
> you're trying to do: -fileSystemRepresentation. It returns a C string
> that's appropriate to be passed to the filesystem, regardless of funky
> Unicode characters in paths. You can use the C strlen() function to
> get the length of a C string (don't use -[NSString length] for this;
> it may not match up).
>
> HTH, and remember to use your powers for good, not evil. Cheaters
> just ruin the fun for the rest of us.
>
> --Kyle Sluder
>
| Related mails | Author | Date |
|---|---|---|
| Mitchell Hashimoto | Jan 28, 18:17 | |
| Hamish Allan | Jan 28, 18:21 | |
| Nir Soffer | Jan 28, 22:48 | |
| Kyle Sluder | Jan 28, 22:55 | |
| Bill Bumgarner | Jan 28, 23:01 | |
| Mitchell Hashimoto | Jan 29, 06:07 | |
| Kyle Sluder | Jan 29, 06:59 | |
| Mitchell Hashimoto | Jan 29, 07:03 | |
| Kyle Sluder | Jan 29, 07:17 | |
| Mitchell Hashimoto | Jan 29, 07:20 | |
| Kyle Sluder | Jan 29, 07:27 | |
| Mitchell Hashimoto | Jan 29, 07:39 | |
| Chris Suter | Jan 29, 07:54 | |
| Torsten Curdt | Jan 29, 09:21 |






Cocoa mail archive

