在raspbian上使用mono执行shell命令

时间:2013-10-05 13:28:31

标签: c# linux mono raspberry-pi

我正在尝试将我的xbox 360控制器连接到我的覆盆子pi,使用c#in mono。连接命令是'sudo xboxdrv'。如果我直接在树莓派上尝试它,这个命令有效但是当我从单声道控制台应用程序尝试它时会出错。我使用的代码:

var info = new ProcessStartInfo();
info.FileName = "sudo xboxdrv";

info.UseShellExecute = false;
info.CreateNoWindow = true;

info.RedirectStandardOutput = true;
info.RedirectStandardError = true;

var p = Process.Start(info);
p.WaitForExit();

Console.ReadLine();

我得到的错误是'原生错误=无法找到指定的文件'。我想它与sudo有关,但没有sudo程序就无法工作,如果可能的话我不想让我的用户root用户。

1 个答案:

答案 0 :(得分:6)

sudo xboxdrv不是文件名,它是带参数的命令。 sudo是文件名,xboxdrv是参数。

所以你的代码应该是:

var info = new ProcessStartInfo();
info.FileName = "sudo";
info.Arguments = "xboxdrv";

info.UseShellExecute = false;
info.CreateNoWindow = true;

info.RedirectStandardOutput = true;
info.RedirectStandardError = true;

var p = Process.Start(info);
p.WaitForExit();

Console.ReadLine();