0

シェル コマンドをリモートで実行できるアプリケーションを作成しています。コマンドを実行する必要があります: tc -l 455管理者として。管理者権限でapplescriptでこのコマンドを実行することにしましたが、目的のcでは、この出力を取得してNSTexViewに表示する必要があります。これが私のコードです:

NSAppleScript* runWithAdminPrivileges = [[NSAppleScript alloc] initWithSource:@"do     shell script \"nc -l 455\" with administrator privileges"];
NSDictionary *error = [[NSDictionary alloc] init];
[runWithAdminPrivileges executeAndReturnError:&error];
NSLog(@"%@", error);

コマンドは実行されていますが、出力を見る方法がありません。私のコードでこれを行う方法はありますか、またはこのシェルコマンドを目的の c で管理者権限で実行して出力を表示する方法はありますか?

前もって感謝します、

4

1 に答える 1

1

-[NSAppleScript executeAndReturnError:]スクリプトの結果である、無視している結果を返します。これは NSString ではなく NSAppleEventDescriptor ですが、呼び出すことで NSString を取得できます-stringValue。また、errorパラメーターは他のパラメーターと同じ規則に従うNSError **ため、最初にオブジェクトを入力する必要はありません。総括する:

NSDictionary *errorInfo; // no initialization necessary.
NSAppleEventDescriptor *scriptResult = [runWithAdminPrivileges executeAndReturnError:&error];
if (scriptResult)
    NSLog(@“%@“, [scriptResult stringValue]);
else
    NSLog(@“%@“, errorInfo;
于 2013-12-19T02:10:01.400 に答える