Ich brauche die Hersteller der Bildschirm/Anzeige erhalten von objective-c
Terminal-OSX: Die „string“ Befehl erfordert die Befehlszeilen Entwickler-Tools
, um es zu erreichen, ich bin ein Terminal-Befehl von obj-c
läuft und Parsing seine Ausgabe.
Befehl
ioreg -lw0 | grep "EDID" | sed "/[^<]*</s///" | xxd -p -r | strings -6
Sein auf meinem System funktioniert, aber wenn ich den gleichen Befehl leite entweder von meinem Code oder aus den Terminal
auf dem System des Benutzers, es ist eine Aufforderung zeigt, mich zu fragen, einige zum Download Entwickler-Tools, die ich nicht auf allen Anwendersystemen ausführen kann.
Screenshot der Aufforderung:
Befehl Ergebnis auf meinem Terminal
n:~ user$ ioreg -lw0 | grep "EDID" | sed "/[^<]*</s///" | xxd -p -r | strings -6
P .00 6 LP133WX3-TLA3 Color LCD n:~ user$
ich den Code unten gegeben bin mit Terminal-Befehl auszuführen
-(NSString*)runCommand:(NSString*)commandToRun;
{
NSString *[email protected]"";
@autoreleasepool {
NSTask *task;
task = [[NSTask alloc] init];
[task setLaunchPath: @"/bin/sh"];
NSArray *arguments = [NSArray arrayWithObjects:
@"-c" ,
[NSString stringWithFormat:@"%@", commandToRun],
nil];
NSLog(@"run command: %@",commandToRun);
[task setArguments: arguments];
NSPipe *pipe;
pipe = [NSPipe pipe];
[task setStandardOutput: pipe];
NSPipe *errorPipe = [NSPipe pipe];
[task setStandardError:errorPipe];
NSFileHandle *file;
file = [pipe fileHandleForReading];
NSFileHandle *errorFile;
errorFile = [errorPipe fileHandleForReading];
[task launch];
NSData *data;
data = [file readDataToEndOfFile];
NSData* errorData;
errorData = [errorFile readDataToEndOfFile];
output = [[NSString alloc] initWithData: data encoding: NSUTF8StringEncoding];
NSString *errorOutput;
errorOutput = [[NSString alloc] initWithData: errorData encoding: NSUTF8StringEncoding];
}
return output;
}
Bitte schlagen Sie etwas wie eine Alternative des Befehls oder eine mögliche Abhilfe vor.
Vielen Dank für Ihre Aufmerksamkeit.
'Filter es lokal mit Strings -6' Könnten Sie bitte @Daredevil –
erarbeiten Wie senden Sie den obigen Befehl an die Remote-Computer? – StefanS
tatsächlich habe ich eine Anwendung erstellt (Code in der Frage zur Verfügung gestellt). Benutzer führen die App auf ihren Mac-Büchern aus, und die Anwendung erfasst ihre Systeminformationen. –