c# - 在 raspbian 上用 mono 执行 shell 命令

标签 c# linux mono raspberry-pi

我正在尝试将我的 xbox 360 Controller 连接到我的树莓派,使用单声道的 c#。连接命令是“sudo xboxdrv”。如果我直接在 raspberry pi 上尝试此命令,则此命令有效,但当我从单声道控制台应用程序尝试时,它会出错。我使用的代码:

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();

我得到的错误是“ native 错误=找不到指定的文件”。我想这与 sudo 有关,但如果没有 sudo,程序将无法运行,如果可能的话,我不想让我的用户成为 root 用户。

最佳答案

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();

关于c# - 在 raspbian 上用 mono 执行 shell 命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19198351/

相关文章:

c# - TakeWhile,但我也想要输入序列的其余部分

python - Django runserver 报错,全新安装,Django 初次使用者

linux - 我应该在哪里_append Yocto bitbake 任务来创建工作文件夹符号链接(symbolic link)?

c# - 我可以将 mono64 与 Visual Studio for Mac 一起使用吗?

c# - 为引用对象指定 Entity Framework 中的列名称

c# - 如何获取服务器端字段的字符串长度?

c# - 无法从组织网络发布 Azure Web 应用程序

MySQL 无法从 Linux 上安装的公共(public) IP 访问

c# - 事件计时器在 .NET 中延迟,而不是在 Mono 中。这是一个错误吗?

.net - .NET 中的事务性打开/写入/替换?