jalankan perintah shell dengan mono di raspbian

Saya mencoba menghubungkan pengontrol xbox 360 saya ke raspberry pi saya, dengan c# di mono. Perintah untuk terhubung adalah 'sudo xboxdrv'. Perintah ini berfungsi jika saya mencobanya langsung di raspberry pi tetapi memberikan kesalahan saat saya mencobanya dari aplikasi konsol mono. Kode yang saya gunakan:

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

Kesalahan yang saya dapatkan adalah 'Kesalahan asli= Tidak dapat menemukan file yang ditentukan'. Saya kira itu ada hubungannya dengan sudo, tetapi tanpa sudo program tidak dapat bekerja, dan jika memungkinkan saya tidak ingin menjadikan pengguna saya sebagai pengguna root.


person pieter_dv    schedule 05.10.2013    source sumber


Jawaban (1)


sudo xboxdrv bukan nama file, ini adalah perintah dengan argumen. sudo adalah nama file, xboxdrv adalah argumennya.

Jadi kode Anda seharusnya:

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();
person user2737037    schedule 05.10.2013