[Mono-osx] Cannot catch console output
Alex Soto
dxdream at gmail.com
Tue Apr 17 13:48:51 UTC 2012
Hello guys, I'm trying to execute some shell commands on the Mac and do some additional stuff based on the command output but for some reason I'm not able to catch the command output from some commands like ssh, defaults etc I'm trying to show the output to a NSTextArea but i always get a null on e.Data
But on MonoDevelop's "Application Output" window I see the result of the command executed
screenshot20120417at839.png <- this is what i would like to catch on a string
but i get null on e.Data instead the above string, here is the code I'm using
ProcessStartInfo ps = new ProcessStartInfo ("ssh", "");
ps.UseShellExecute = false;
ps.RedirectStandardOutput = true;
using (Process p = Process.Start (ps))
{
p.OutputDataReceived += delegate(object sender2, DataReceivedEventArgs e) {
InvokeOnMainThread(()=>
{
txtTexto.Value = e.Data ?? "";
});
} ;
p.BeginOutputReadLine();
}
also tried the Objective-C way, i bound NSFileHandle.h since it wasn't on MonoMac git code and I'm getting the same behavior
NSTask task = new NSTask();
task.LaunchPath = "/usr/bin/ssh";
NSPipe pipe = NSPipe.pipe();
task.StandardOutput = pipe;
task.Launch();
NSData data = file.ReadDataToEndOfFile();
NSString str = NSString.FromData(data, NSStringEncoding.UTF8);
string datos = str.ToString()
txtTexto.Value = datos
Any ideas?? thanks in advance for any help
Alex
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.ximian.com/pipermail/mono-osx/attachments/20120417/01d98b2c/attachment.html>
More information about the Mono-osx
mailing list