none
Comment activer/désactiver une connexion reseau de type connexion d'acces a distance en vb.net ? RRS feed

  • Question

  • Bonjour,
    Après plusieurs heures de recherche, je me permet de venir vous demandez de l'aide.

    Développant un logiciel avec Visual Studio 2008 (Framework 3.5), voila quelques jours que j'essaye, sans résultats, de pouvoir tout d'abord lister mes connexions réseaux active ET inactive. puis ensuite de pouvoir les activer ou désactiver depuis mon application.

    J'ai commencer par trouver quelques informations avec "WMI", mais impossible de voir apparaître la connexion d'accès a distance... les autres connexions apparaissent bien.

    Même chose avec "System.Net.NetworkInformation" "NetworkInterface.GetAllNetworkInterfaces".. La connexion apparaît, mais uniquement si celle ci est active.. Ceci est un gros probleme pour moi car j'ai besoin de lancer la connexion par mon application alors que celle ci serait inactive.

    En ésperant recevoir quelques bon conseils.

    Merci

    • Type modifié Aurel Bera mardi 6 mai 2014 11:26 disc
    • Type modifié Aurel Bera mercredi 7 mai 2014 12:03 quest
    vendredi 25 avril 2014 13:06

Réponses

Toutes les réponses

  • Bonjour

    La réponse dans ce thread résoudre votre problème :

    Programmatically Enable / Disable Connection

    Bien cordialement,


    Aurel BERA, MSFT
    MSDN Community Support. LE CONTENU EST FOURNI "TEL QUEL" SANS GARANTIE D'AUCUNE SORTE, EXPLICITE OU IMPLICITE.
    S'il vous plaît n'oubliez pas de "Marquer comme réponse" les réponses qui ont résolu votre problème. C'est une voie commune pour reconnaître ceux qui vous ont aidé, et rend plus facile pour les autres visiteurs de trouver plus tard la résolution.

    vendredi 25 avril 2014 13:38
  • Je suis désolé mais cette solution ne fonctionne pas dans mon cas.

    Je l'ai déjà testé, cela me retourne bien les connexions réseaux mais pas la connexion d'accès à distance...
    Ma connexion en question est une connexion d'accès à distance (modem PPP). Elle ne correspond donc à aucune carte réseau car elle "emule" une connexion TCP à travers un modem.

    Comment puis je lister ce genre de connexion réseau et comment puis l'activer ou/et la désactiver ?

    Merci pour votre aide.

    vendredi 25 avril 2014 14:18
  • L'utilisation de WMI and "Win32_NetworkAdapter" WMI class ne me retourne pas la connexion correspondante a ma connexion d'accès à distance, uniquement les connexion aux réseaux locaux sont listées.

    Est il possible de manager, via mon application en VB.net, une "connexion d'accès à distance" de la même façon qu'une "connexion au réseau local" ?

    Si il existe des solutions je suis a l'écoute,
    Merci

    lundi 28 avril 2014 07:07
  • Bonjour

    Voir la réponse marquée dans ce thread :

    How to Disconnect and connect dsl connection PPP in C#

    Et ici vous avez un outil de conversion C# <-> VB.NET

    Bien cordialement,


    Aurel BERA, MSFT
    MSDN Community Support. LE CONTENU EST FOURNI "TEL QUEL" SANS GARANTIE D'AUCUNE SORTE, EXPLICITE OU IMPLICITE.
    S'il vous plaît n'oubliez pas de "Marquer comme réponse" les réponses qui ont résolu votre problème. C'est une voie commune pour reconnaître ceux qui vous ont aidé, et rend plus facile pour les autres visiteurs de trouver plus tard la résolution.

    lundi 28 avril 2014 07:14
  • Tout d'abord encore merci pour votre aide.

    J'ai pris grand soin a bien comprendre le lien que vous m'avez fournit, et après plusieurs heures de tests je n'arrive toujours pas a lister la "connexion PPP".

    Public Shared Function GetNetworkConnectionsFolder() As Shell32.Folder
    
    Dim sh As New Shell32.Shell()
    Dim controlPanel As Shell32.Folder = sh.[NameSpace](3)
    Dim items As Shell32.FolderItems = controlPanel.Items()
    
     For Each item As Shell32.FolderItem In items
         Try
             Dim n = GetNetworkConnection(DirectCast(item.GetFolder, Shell32.Folder), "Ethernet")
             If Not n Is Nothing Then
               'Connexion "Ethernet" correspondante trouvée"
             End If
         Catch
         End Try
     Next
     Return Nothing
    
    End Function
    
    
    
    
    Public Shared Function GetNetworkConnection(ByVal networkConnectionsFolder As Shell32.Folder, ByVal connectionName As String) As Shell32.FolderItem2
    
       Dim items As Shell32.FolderItems = networkConnectionsFolder.Items()
       For Each item As Shell32.FolderItem2 In items
                If item.Name = connectionName Then
                    Return item
                End If
       Next
       Return Nothing
    
    End Function
     

    Voici les 2 méthodes fournit sur "How to Disconnect and Connect DSL connection PPP in C#" traduite en vb.net afin de lister les répertoires du panneaux de configurations afin de lister les connexion réseaux et ensuite pouvoir les activer ou déactiver.

    Apparemment cela permettrait de lister les connexions réseaux, dans mon cas cela ne marche pas.
    J'ai adapté le code afin de chercher dans tout les répertoires et non uniquement "Network"...

    Malgré quelques recherches supplémentaires impossible meme de lister les autres connexions au reseau local qui d'habitude apparaissent par d'autres méthodes.

    Ai je manqué une étape ?
    Dans tout les cas je vais continuer a chercher je n'ai pas le choix, la persévérance payera peut être...

    Merci pour toutes ces informations,
    Cordialement,



    • Modifié Davy N lundi 28 avril 2014 15:30
    lundi 28 avril 2014 12:39
  • Quelle version de système d'exploitation utilisez-vous?
    Regardez le dernier commentaire, dans le lien ci-dessus.

    Bien cordialement.


    Aurel BERA, MSFT
    MSDN Community Support. LE CONTENU EST FOURNI "TEL QUEL" SANS GARANTIE D'AUCUNE SORTE, EXPLICITE OU IMPLICITE.
    S'il vous plaît n'oubliez pas de "Marquer comme réponse" les réponses qui ont résolu votre problème. C'est une voie commune pour reconnaître ceux qui vous ont aidé, et rend plus facile pour les autres visiteurs de trouver plus tard la résolution.

    lundi 28 avril 2014 13:50
  • Je suis sur Windows 8 mais j'avais bien vu le commentaire qui spécifie que la fonction ne retrouve pas "Network Connection". C'est pourquoi je n'ai pas trier sur le nom "Network connection".

    La commande "Shell32.Folder controlPanel = sh.NameSpace(3)" permet de lister tout le panneau de configuration.

    Sur Windows 8, "connexion réseaux" n'existe pas directement dans le panneau de configuration. 

    Donc avec la méthode decrite precedament j'ai 'accès' a "Centre de réseau et partage" mais impossible d'aller plus loin ensuite pour lister les connexion réseaux...

    Je vais tout de meme faire un essais sur un Windows XP afin de vérifier si la méthode fonctionne.
    Du coup pensez vous qu'aucune autre solution n'est envisageable pour Windows 7 et 8 ?

    Merci

    lundi 28 avril 2014 14:14
  • Je viens de porter mon projet sur une machine avec Windows XP et en effet cela marche parfaitement...

    Le seul problème a mon avis avec Windows 7 et 8, c'est qu'il n'y a plus la même arborescence dans le panneau de configuration, en particulier pour "connexions réseau" qui a disparu pour être remplacer par "centre réseau et partage".

    Malgré cela sur Windows 8, "Connexions réseau" tel que sur Windows XP est disponible depuis un clique droit de la souris sur l'icone Windows de l'ancien menu démarrer.

    Existe il une solution en utilisant le même principe que pour Windows XP afin de lister ces connexions sur Windows 7 et 8 ? 

    Merci

    lundi 28 avril 2014 15:02
  • J'ai beaucoup cherche sans aucun resultat.

    Je vous propose de regarder dans des registres.

    Pour Windows 8 j'ai trouve HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\NetworkList\Profiles\ qui contients aussi les connexions distantes.

    On doit utilizer RasDial pour connecter/ deconecter.

    http://www.codeproject.com/Questions/169820/Create-Dial-up-Connectoid-using-VB-NET

    Bien cordialement,


    Aurel BERA, MSFT
    MSDN Community Support. LE CONTENU EST FOURNI "TEL QUEL" SANS GARANTIE D'AUCUNE SORTE, EXPLICITE OU IMPLICITE.
    S'il vous plaît n'oubliez pas de "Marquer comme réponse" les réponses qui ont résolu votre problème. C'est une voie commune pour reconnaître ceux qui vous ont aidé, et rend plus facile pour les autres visiteurs de trouver plus tard la résolution.

    • Marqué comme réponse Aurel Bera mercredi 7 mai 2014 12:03
    mardi 29 avril 2014 06:59
  • Merci beaucoup, j'apprécie grandement votre aide !

    J'ai effectivement pu lister toutes les connexions disponibles sur ma machine, ainsi que les connexions d'accès à distance via le REGISTRE. Un premier pas en avant ...

    Je n'ai pas eu le temps de me remettre sur le projet aujourd'hui, mais je pense que dès demain je pourrais regarder un peu plus en détails "RasDial".

    Je vous tiendrais informé de mes résultats suite aux tests,
    Cordialement,

    mardi 29 avril 2014 14:38
  • Votre solution me conviens parfaitement !

    J'utilise le registre pour lister mes connexions (sur Windows 8), et j'utilise "rasdial.exe" pour manager ma connexion.

    Merci pour votre aide qui m'a été précieuse !!!


    • Modifié Davy N mercredi 7 mai 2014 12:04
    mercredi 7 mai 2014 12:00
  • Merci de votre retour!

    J'ai changé le type en question et marque la réponse.

    Bien cordialement


    Aurel BERA, MSFT
    MSDN Community Support. LE CONTENU EST FOURNI "TEL QUEL" SANS GARANTIE D'AUCUNE SORTE, EXPLICITE OU IMPLICITE.
    S'il vous plaît n'oubliez pas de "Marquer comme réponse" les réponses qui ont résolu votre problème. C'est une voie commune pour reconnaître ceux qui vous ont aidé, et rend plus facile pour les autres visiteurs de trouver plus tard la résolution.

    mercredi 7 mai 2014 12:04