IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C# Discussion :

desactiver activer carte reseau


Sujet :

C#

  1. #1
    Membre du Club
    Inscrit en
    Octobre 2007
    Messages
    109
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 109
    Points : 48
    Points
    48
    Par défaut desactiver activer carte reseau
    bonjour,

    je voudrai savoir si il existe une commande pour activer et desactiver une de mes carte reseau. a la demande

    je suis sous vista.
    et avec le framework 2.0


    j ai bien vue qu il existant (un sof) devcon(98 95 ou autre) mais pas pour vista.


    Et ce que c ets possible ??

    merci

  2. #2
    Membre éclairé
    Inscrit en
    Octobre 2006
    Messages
    587
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations forums :
    Inscription : Octobre 2006
    Messages : 587
    Points : 706
    Points
    706
    Par défaut
    Bonsoir,

    Je pense qu'il faudrait passer par l'API native de Windows pour ça.

  3. #3
    Membre du Club
    Inscrit en
    Octobre 2007
    Messages
    109
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 109
    Points : 48
    Points
    48
    Par défaut
    merci mais euuuu

    je pourrai avoir un peu plus d eclaircicemment


    ca veux dire quoi passer par l API native de windows ??

    je n ai pas compris...

    Merci

  4. #4
    Rédacteur
    Avatar de Thomas Lebrun
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    9 161
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 9 161
    Points : 19 434
    Points
    19 434
    Par défaut
    Regarde aussi peut-être du coté de WMI

  5. #5
    Expert confirmé
    Avatar de ced600
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Août 2006
    Messages
    3 364
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Août 2006
    Messages : 3 364
    Points : 4 061
    Points
    4 061
    Par défaut
    Si tu utilises WMI, regarde ce lien :
    http://www.developpez.net/forums/sho...d.php?t=488264

    Le soft WMICreator est proposé, il te permettra de générer du code C# pour pouvoir utiliser les classe de WMI.
    Pourquoi faire compliqué lorsque l'on peut faire encore plus compliqué.

  6. #6
    Expert confirmé
    Avatar de ced600
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Août 2006
    Messages
    3 364
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Août 2006
    Messages : 3 364
    Points : 4 061
    Points
    4 061
    Par défaut
    Par exemple avec la classe Win32_NetworkAdapterConfiguration et la méthode EnableDHCP tu obtiens ce code là :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    using System;
    using System.Management;
    using System.Windows.Forms;
     
    namespace WMISample
    {
        public class CallWMIMethod
        {
            public static void Main()
            {
                try
                {
                    ManagementObject classInstance = 
                        new ManagementObject("root\\CIMV2", 
                        "Win32_NetworkAdapterConfiguration.Index='3'",
                        null);
     
                    // no method in-parameters to define
     
     
                    // Execute the method and obtain the return values.
                    ManagementBaseObject outParams = 
                        classInstance.InvokeMethod("EnableDHCP", null, null);
     
                    // List outParams
                    Console.WriteLine("Out parameters:");
                    Console.WriteLine("ReturnValue: " + outParams["ReturnValue"]);
                }
                catch(ManagementException err)
                {
                    MessageBox.Show("An error occurred while trying to execute the WMI method: " + err.Message);
                }
            }
        }
    }
    Peut être faut il jouer avec la classe Win32_NetworkConnection et la propriété ConnectionState ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    using System;
    using System.Management;
    using System.Windows.Forms;
     
    namespace WMISample
    {
        public class MyWMIQuery
        {
            public static void Main()
            {
                try
                {
                    ManagementObjectSearcher searcher = 
                        new ManagementObjectSearcher("root\\CIMV2", 
                        "SELECT * FROM Win32_NetworkConnection"); 
     
                    foreach (ManagementObject queryObj in searcher.Get())
                    {
                        Console.WriteLine("-----------------------------------");
                        Console.WriteLine("Win32_NetworkConnection instance");
                        Console.WriteLine("-----------------------------------");
                        Console.WriteLine("ConnectionState: {0}", queryObj["ConnectionState"]);
                    }
                }
                catch (ManagementException e)
                {
                    MessageBox.Show("An error occurred while querying for WMI data: " + e.Message);
                }
            }
        }
    }
    Pourquoi faire compliqué lorsque l'on peut faire encore plus compliqué.

  7. #7
    Membre du Club
    Inscrit en
    Octobre 2007
    Messages
    109
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 109
    Points : 48
    Points
    48
    Par défaut
    ok merci

    je vais regarder ca et vous tiendrais au courant

    mais encore une petit question je suis sosu le framework 2.0
    pour etre portable sur mono (linux, mac )

    si je passe par wmi ou l api de windows je suppose que je ne serai plus du tout portable

    existe t il un autre moyen ??

  8. #8
    Rédacteur
    Avatar de Louis-Guillaume Morand
    Homme Profil pro
    Cloud Architect
    Inscrit en
    Mars 2003
    Messages
    10 839
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Cloud Architect
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2003
    Messages : 10 839
    Points : 28 252
    Points
    28 252
    Par défaut
    non car c'est du controle système donc il te faut pour chaque système connaitre ses methodes de gestion du hardware
    moi c'est Louis-Guillaume, ni Louis, ni Guillaume mais Louis-Guillaume et je n'aide pas ceux qui écorchent mon nom

  9. #9
    Expert confirmé
    Avatar de ced600
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Août 2006
    Messages
    3 364
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Août 2006
    Messages : 3 364
    Points : 4 061
    Points
    4 061
    Par défaut
    Regarde sur wikipedia la definition du design pattern adapter.
    J'ai déjà été confronter à un problème de portabilité du programme.
    On ne me demandé pas qu'il soit directement portable mais de réduire le temps de développement pour le rendre portable.
    Normallement ce design pattern fonctionnant avec un systeme d'interface reduis le coup de développement à 1 seule classe pour la portabilité sur chaque système.
    Pourquoi faire compliqué lorsque l'on peut faire encore plus compliqué.

  10. #10
    Membre du Club
    Inscrit en
    Octobre 2007
    Messages
    109
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 109
    Points : 48
    Points
    48
    Par défaut
    bonjour tout le monde.

    j ai mit un peu de temp je sais desoler..

    1 ) bon alors avec wmi code creator, (surper truc .. ce machin la )

    je suis capable sous vista d activer et un peripherique reseau. grace a

    Win32_NetworkAdapter , Enable et Disable.

    mais ce que je ne compred pas c ets que sur mon pc sous xp, je n ai pas les methode Enable et Disable ...

    j ai juste reset et Setpowerstat qui en passent me donne toujours :
    Cette methode n est implemente dans aucune classe. (sosu xp comem sous vista) est ce que c est normal ??

    je dois egalement le faire absolument pour xp.
    J ai bien le framwork 2.0 d installer sur les 2 pc

    comment activer ces methodes sur mon xp ?? peut ton les ajouter ???

    2) pour activer et desactiver un peripherique, je dois demmarer wmi en mode administrateur. donc il faudra que je demmare mon programem en administrateru.
    je ne voudrai pas etre obliger de faire a chaque fois bouton droit demmare en mode administrateru, je voudrai le faire jsute avec un simple double clic. Attention je ne veux pas supprimer pour bypasser la fennetre de vista qui demande l autorisation pour l executer en mode admin.

    jsute le faire avec un simpel double clic.

    merci

  11. #11
    Expert confirmé
    Avatar de ced600
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Août 2006
    Messages
    3 364
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Août 2006
    Messages : 3 364
    Points : 4 061
    Points
    4 061
    Par défaut
    Alors pour le 1) :

    Le WMI évolue avec chaque nouvelle version de windows, et les classes disponibles en natif et nouvelle sorties avec une nouvelle version de windows ne sont disponible que pour celle-ci et les futures versions.

    C'est le cas de tes méthodes Enable et Disable, voir le lien vers l'aide MSDN :
    http://msdn2.microsoft.com/en-us/lib...85(VS.85).aspx

    En général pour XP on utilise les méthodes de Win32_NetworkAdapterConfiguration. Regardes les tu trouvera peut être ton bonheur.

    Si cela ne se fait qu'avec Win32_NetworkAdapter, alors regarde du coté des propriétés de la classe.

    Ici tu as des exemples de scripts pour travailler avec le réseau en WMI :
    http://msdn2.microsoft.com/en-us/lib...95(VS.85).aspx

    Regardes le permier exemples, il fait ce que tu souhaites faire.

    Pour le point 2) :
    Je ne sais pas comment tu peux faire cela, ni même si c'est possible :s
    Pourquoi faire compliqué lorsque l'on peut faire encore plus compliqué.

  12. #12
    Membre du Club
    Inscrit en
    Octobre 2007
    Messages
    109
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 109
    Points : 48
    Points
    48
    Par défaut
    pour le 1)

    sous xp la methode detourner semble consister a profiter du fait que l on est en mode dhcp pour faire un dhcplease ou un dhcp renew.
    or "If you are not using DHCP, you cannot use WMI to disable a network connection."
    ca ne semble pas marcher si je suis sous xp en static donc

    je pensai que le WMI venai avec les framework ...

    pour le 2)

    je ne trouve pas le PDF faut il imperativement s abonner ??
    aurai tu vue par hazard queque chose de similaire ailleurs ??

    et un de plus 3)

    Je sais que je ca semble ecarter un peu de la question initale mais c et spour contourner ce pb la en fait que je voulais desactiver une carte reseau problematique.

    avec les WMI je suis quand meme capable de recuper un grand nombre d info sur le reseau ( en fait toutes les info il me semble).
    En particulier Index: 12 et InterfaceIndex: 10 ( voir plus bas).
    il me semble donc possible de specifier que peripherique reseau je peu utiliser pour etablir une conection sortante non ??

    j essai de resoudre ce PB en csharp ou en c++ , idealement en csharp peu etre avec les WMI,mais je patoge un peu la..

    voila un poste qu ej ai fait sur la partie c++ relatife a ce probleme. j

    http://www.developpez.net/forums/sho...=1#post3061930

    Win32_NetworkAdapterConfiguration instance
    -----------------------------------
    ArpAlwaysSourceRoute:
    ArpUseEtherSNAP:
    Caption: [00000012] Intel(R) Wireless WiFi Link 4965AGN
    DatabasePath: %SystemRoot%\System32\drivers\etc
    DeadGWDetectEnabled:
    DefaultIPGateway: 192.168.0.2
    DefaultTOS:
    DefaultTTL:
    Description: Intel(R) Wireless WiFi Link 4965AGN
    DHCPEnabled: True
    DHCPLeaseExpires: 20080318191531.000000-240
    DHCPLeaseObtained: 20080317191531.000000-240
    DHCPServer: 192.168.0.2
    FullDNSRegistrationEnabled: True
    GatewayCostMetric: 0
    IGMPLevel:
    Index: 12
    InterfaceIndex: 10
    IPAddress: 192.168.0.103
    IPConnectionMetric: 1
    IPEnabled: True
    IPFilterSecurityEnabled: False
    IPPortSecurityEnabled:
    IPSubnet: 255.255.255.0
    IPSubnet: 64
    IPUseZeroBroadcast:
    IPXAddress:
    IPXEnabled:
    IPXFrameType:
    IPXMediaType:
    IPXNetworkNumber:
    IPXVirtualNetNumber:
    KeepAliveInterval:
    KeepAliveTime:

    -----------------------------------
    Win32_NetworkAdapterConfiguration instance


    merci

  13. #13
    Expert confirmé
    Avatar de ced600
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Août 2006
    Messages
    3 364
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Août 2006
    Messages : 3 364
    Points : 4 061
    Points
    4 061
    Par défaut
    sous xp la methode detourner semble consister a profiter du fait que l on est en mode dhcp pour faire un dhcplease ou un dhcp renew.
    or "If you are not using DHCP, you cannot use WMI to disable a network connection."
    ca ne semble pas marcher si je suis sous xp en static donc

    je pensai que le WMI venai avec les framework ...
    Je pense que c pour cela que les méthodes ont été rajouté sous vista.

    Regarde s'il n'existe pas des packages téléchargeable pour mettre à jour le WMI.

    WMI -> COM/DCOM pas framework -> Dépendence à Windows et ses versions
    Pourquoi faire compliqué lorsque l'on peut faire encore plus compliqué.

  14. #14
    Membre du Club
    Inscrit en
    Octobre 2007
    Messages
    109
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 109
    Points : 48
    Points
    48
    Par défaut
    helas je vien d installer la mise a jour des wmi pour XP

    et je n ai pas les methode enable et disable en plus ni aucuen autre methode suplementaire qui me permetrai de la faire

    pourtant si je suis capable de le desactiver a la main sous xp .( gui , souris), je dois pouvoir le faire par un programme. !!!

    une autre idee ??? peu etre par autre chsoe que le wmi ???

  15. #15
    Expert confirmé
    Avatar de ced600
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Août 2006
    Messages
    3 364
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Août 2006
    Messages : 3 364
    Points : 4 061
    Points
    4 061
    Par défaut
    "If you are not using DHCP, you cannot use WMI to disable a network connection."
    Cela veut tout dire pour la version WMI de XP.

    J'ai trouvé cela :
    http://support.microsoft.com/default...;EN-US;Q311272

    Avec netsh tu peux faire des trucs sympas mais j'ai pas encore trouvé la désactivation des cartes :
    http://windowsitpro.itpro.fr/Dossier...avec-Netsh.htm
    Pourquoi faire compliqué lorsque l'on peut faire encore plus compliqué.

Discussions similaires

  1. Config carte reseau ethernet 10/100
    Par toto_titi dans le forum Réseau
    Réponses: 9
    Dernier message: 08/02/2012, 17h57
  2. Réponses: 1
    Dernier message: 05/04/2011, 12h40
  3. Obtenir l'adresse mac de sa carte reseau
    Par kivoch dans le forum C++Builder
    Réponses: 4
    Dernier message: 19/11/2009, 18h30
  4. Désactiver IPV6 sur une carte réseau
    Par JavaAcro dans le forum Réseau
    Réponses: 3
    Dernier message: 21/04/2006, 08h52
  5. Réponses: 33
    Dernier message: 30/03/2004, 16h09

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo