Обычный подход для конфигурации на основе графического интерфейса пользователя заключается не в непосредственном редактировании файлов конфигурации системы, а в разговоре через интерфейс конфигурации, предоставленный сетевыми демонами.
С
wpa_supplicant
можно разговаривать через утилиту wpa_cli
. Вы используете его, порождая wpa_cli
как отдельный процесс с stdio, перенаправленным в канал, в который вы отправляете команды конфигурации.
Обновление: Чтобы поговорить с wpa_cli
, вы должны создать процесс с перенаправленным выводом. С Mono вы сделали бы это следующим образом
private void start_wpa_cli()
{
ProcessStartInfo psI = new ProcessStartInfo("wpa_cli");
psI.UseShellExecute = false;
psI.RedirectStandardInput = true;
psI.RedirectStandardOutput = true;
Process p = new Process();
p.StartInfo = psI;
p.Start();
StreamWriter sw = p.StandardInput;
sw.AutoFlush = true;
StreamReader sr = p.StandardOutput;
...
Затем вы можете отправлять команды wpa_cli через sw
и читать результат из sr
. Команды для wpa_cli
вы можете найти на его странице справки.
Если используется NetworkManager
, вы говорите с ним через интерфейс D-Bus. Обновление: Для доступа к D-Bus из .Net / Mono вы можете, например, использовать https://github.com/mono/dbus-sharp