Avatar billede jackass- Nybegynder
15. april 2011 - 11:51 Der er 5 kommentarer og
1 løsning

Disable/Enable wireless network adapter

Hej,

Hvordan kan jeg disable og enable wireless netværkskort vha C# kode?

Jeg har googlet en del og der er mange forskellige "løsninger" med WMI og andet som bare desværre ikke virker på alle Windows versioner.

Kravet er Windows XP SP3 og opefter, med .NET framework 3.5.

Håber nogen kan hjælpe :-)
Avatar billede Syska Mester
15. april 2011 - 14:16 #1
Tvivler på der er en generel måde som virker i alle OS'er fra XP og frem ... ( Død over alt under W7 )

Men kan du ikke detect OS ... og så implementere det på forskellige måder alt efter OS. Det virker for mig som den bedste måde.

mvh
Avatar billede Syska Mester
15. april 2011 - 14:20 #2
Her er nogen C++ DllImport ...

http://lamahashim.blogspot.com/2010/03/disabling-network-using-c.html

Men ingen ide om det virker på samme måde i XP, Vista og W7.

mvh
Avatar billede muddi Praktikant
01. maj 2011 - 21:34 #3
Hvis netværkskortet ikke har sit eget management utility installeret, så bruger Windows sin egen proces kaldet Wireless Zero Configuration i Windows XP. Den hedder WLAN AutoConfig i Windows Vista og Windows 7.

using System.ServiceProcess

ServiceController controller = new ServiceController();
controller.MachineName = ".";
controller.ServiceName = "WLAN AutoConfig";

// Stop servicen
controller.Stop();

// Start servicen
controller.Start();

Nu har jeg ikke testet det her, men skrevet det direkte i browseren, så du må selv lige sørge for en ordentlig indkapsling, men håber du forstår ideen ;)
Avatar billede jackass- Nybegynder
04. maj 2011 - 13:15 #4
http://lamahashim.blogspot.com/2010/03/disabling-network-using-c.html ser interessant ud, men det er tilsyneladende kun til åbne netværksforbindelser, ikke netkort eller lign.

ServiceController() er også interessant, men jeg er ikke sikker på at den kan løse min udfordring. I får lige lidt flere detaljer:

Laptops benytter det trådløse netværk og når de bliver placeret i en dockingstation er de på kablet LAN - dvs nu med både kabel og wifi. Da der ingen grund er til at det skal belaste accesspoints når de er på LAN med kabel, vil jeg have en timer kørende som holder øje med hvornår det sker, og så disable det trådløse netværkskort.

Ligeledes vil jeg så gerne enable det igen når laptop bliver taget ud af docking.

Det drejer sig om WinXP og Win7 klienter.

Håber I kan bruge det til noget? :-)
Avatar billede jackass- Nybegynder
04. maj 2011 - 14:14 #5
Det ser ud til at virke med:

netsh interface set interface "Wireless Network Connection" DISABLED
netsh interface set interface "Wireless Network Connection" ENABLED


..kaldt med System.Diagnostics.Process.Start() :-)
Avatar billede jackass- Nybegynder
18. maj 2015 - 08:21 #6
..
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester