Vydělávej až 160.000 Kč měsíčně! Akreditované rekvalifikační kurzy s garancí práce od 0 Kč. Více informací.
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.
Avatar
Davidsun
Člen
Avatar
Davidsun:30.4.2021 21:27

Ahoj,
snažím se udělat okenní aplikaci, která bude umět importovat wifi profil z .xml do windows pro všechny uživatele. Exportování profilů a další funkce mám již skoro hotové, ale zde jsem se jako začátečník zasekl...

Předem děkuji za pomoc.

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Diagnostics;
//added
using System.Net.NetworkInformation;
using System.Threading;
using System.Net;
using System.Net.Sockets;
using System.Globalization;
using System.Xml;
using System.IO;
using System.Net.WebSockets;


namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {


        }




        private void btnExportProfiles_Click(object sender, EventArgs e)
        {
            System.Diagnostics.Process prcsExport = new System.Diagnostics.Process();
            prcsExport.StartInfo.FileName = "netsh.exe";
            prcsExport.StartInfo.Arguments = "wlan export profile key=clear";
            prcsExport.StartInfo.UseShellExecute = false;
            prcsExport.StartInfo.RedirectStandardOutput = true;
            prcsExport.Start();


        }



        public void btnWlanProfilesShow_Click(object sender, EventArgs e)
        {


            Form2 ReaderForm = new Form2();


            ReaderForm.Show();
        }

        private void btnImportProfile_Click(object sender, EventArgs e)
        {



                OpenFileDialog open = new OpenFileDialog();
                open.Filter = "data(*.xml)|*.xml";
                open.Title = "data file";
                if (open.ShowDialog() == DialogResult.OK)
                {
                    txtBoxPathImport.Text = open.FileName; //textbox pro cestu
                }

                open.Dispose();


                System.Diagnostics.Process prcsImport = new System.Diagnostics.Process();
                prcsImport.StartInfo.FileName = "netsh.exe";
               // ---------> prcsImport.StartInfo.Arguments = "wlan add profile filename="+ txtBoxPathImport.Text + "user=all";
                prcsImport.StartInfo.UseShellExecute = false;
                prcsImport.StartInfo.CreateNoWindow = true;
                prcsImport.StartInfo.RedirectStandardOutput = true;

                prcsImport.Start();




                //string strCmd = "/C netsh wlan add profile filename=\"C:\\temp\\Wi-Fi-eurohruzt.xml\" user=all";
                //System.Diagnostics.Process.Start("cmd.exe", strCmd);


        }



    }
}

Zkusil jsem: V konzoli mi funguje následující kód, ale to není hezké řešení, musí se dopisovat cesta k souboru :-(

string strCmd = "/C netsh wlan add profile filename=\"C:\\temp\\Wi-Fi-NET.xml\" user=all";
System.Diagnostics.Process.Start("cmd.exe", strCmd);

zkoušel jsem udělat formulář s tlačítkem a nastaveným open file dialogem, se kterým vyberu xml soubor, ale nezvládnu již udělat příkaz s argumentem, kde by byla cesta vypsaná třeba v textboxu atd... :-(

        private void btnImportProfile_Click(object sender, EventArgs e)
        {
                System.Diagnostics.Process prcs = new System.Diagnostics.Process();
                prcs.StartInfo.FileName = "netsh.exe";
              // ---------> problem    prcs.StartInfo.Arguments = "netsh wlan add profile filename="C:\temp\Wi-Fi-NET.xml" user=all";
                prcs.StartInfo.UseShellExecute = false;
                prcs.StartInfo.CreateNoWindow = true;
                prcs.StartInfo.RedirectStandardOutput = true;

                prcs.Start();
}

Chci docílit: Snažím se, aby po kliknutí na tlačítko sevotevřel open file dialog a mohl jsem vybrat .xml a to by se následně importovalo.
cmd příkaz:

netsh wlan add profile filename="*C:\temp\Wi-Fi-NET.xml*" user=all
Odpovědět
30.4.2021 21:27
Budeme spolu, dokud nás výpadek elektrické sítě nerozdělí :-)
Avatar
Davidsun
Člen
Avatar
Davidsun:4.5.2021 20:23

vyřešeno

string vnorit = txtBoxPathImport.Text;

string strCmd = ($"/c netsh wlan add profile filename= \"{vnorit}\" user=all");
System.Diagnostics.Process.Start("cmd.exe", strCmd);
Akceptované řešení
+5 Zkušeností
Řešení problému
Nahoru Odpovědět
4.5.2021 20:23
Budeme spolu, dokud nás výpadek elektrické sítě nerozdělí :-)
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 2 zpráv z 2.