Partage
  • Partager sur Facebook
  • Partager sur Twitter

lister les wifis disponibles et s'y connecter

via l'api wlan en c++

    3 juillet 2017 à 13:18:22

    Bonjour à tous,

    je programme en c++ et souhaite créer un programme listant les réseaux wifi disponibles, et s'y connecter.

    Je pensais qu'une fonction simple existait prenant en paramètre le nom du réseau et le mot de passe pour s'y connecter mais non.

    Une autre renvoyant un tableau avec les réseaux disponibles mais non.

    j'ai longuement regardé la page mdsn de microsoft qui traite de la fonction wlanConnect() mais je me suis retrouvé avec 15 onglets d'ouverts car chacun d'eux contient un lien vers trois autres.

    pourriez vous m'aider ?

    Merci d'avance,

    Raphael

    EDIT : évidemment, pas besoin d'avoir une solution portable

    -
    Edité par raphaeldesaintalbin 3 juillet 2017 à 13:46:04

    • Partager sur Facebook
    • Partager sur Twitter
    "La valeur n'attend point le nombre des années" Le Cid, Pierre Corneille, Don Rodrigue parlant au Comte
      3 juillet 2017 à 13:26:34

      Yo!

      C'est pas du C++ mais c'est en ligne de commandes Windows 7 (comme je sais pas ce que tu veux faire, je suppose que le but est de se connecter facilement, alors je pose le lien ici : :) xX-xXLIENXx-Xx (:

      • Partager sur Facebook
      • Partager sur Twitter

      « Je n’ai pas besoin de preuve. Les lois de la nature, contrairement aux lois de la grammaire, ne permettent aucune exception. »
      D. Mendeleïev

        3 juillet 2017 à 13:43:38

        Merci et quelle réactivité !

        Mais en l’occurrence je suis sur W10 malheureusement... et l'api wlan de microsoft est bien faite pour c++ !

        Je voudrais créer un exécutable qui me permette de me connecter a un réseau wifi même si je n'y suis jamais allé (en ayant bien sur le mot de passe) et de le choisir, car la connexion netsh de ms-dos ne arche que si on s'est déjà connecté !(ou alors il faut créer un profil mais bon...)

        Merci quand même,

        Raphael

        EDIT : https://msdn.microsoft.com/en-us/library/ms706613(v=VS.85).aspx voila la fonction que je cherche à utiliser ou équivalent

        -
        Edité par raphaeldesaintalbin 3 juillet 2017 à 13:44:32

        • Partager sur Facebook
        • Partager sur Twitter
        "La valeur n'attend point le nombre des années" Le Cid, Pierre Corneille, Don Rodrigue parlant au Comte
          5 juillet 2017 à 0:12:04

          up !
          • Partager sur Facebook
          • Partager sur Twitter
          "La valeur n'attend point le nombre des années" Le Cid, Pierre Corneille, Don Rodrigue parlant au Comte
            5 juillet 2017 à 9:33:26

            Désolé, je suis vraiment pas un expert dans ce domaine, et j'y connais pas grand chose, mais t'as regardé du coté de : Lien ?

            • Partager sur Facebook
            • Partager sur Twitter

            « Je n’ai pas besoin de preuve. Les lois de la nature, contrairement aux lois de la grammaire, ne permettent aucune exception. »
            D. Mendeleïev

              5 juillet 2017 à 12:45:11

              J'aurais bien voulu "jouer" avec cette api, mais je n'ai pas de portable et donc pas d'ordi "wifi capable"!

              Bref as tu testé https://msdn.microsoft.com/en-us/library/ms706749(v=vs.85).aspx comme point de depart?

              (ainsi que les exemples fournis avec le sdk ?)

              (edit: note que tu n'utilisera jamais wlanconnect immediatement, cela passera toujours par selectionner la carte wifi en premier puis, et c'est plus pratique, lister les reseau detecté (et cela doit probablement initialiser leur profil aussi) puis choisir le "bon"!)

              -
              Edité par breizhbugs 6 juillet 2017 à 13:33:15

              • Partager sur Facebook
              • Partager sur Twitter
              ** La doc, c'est comme le PQ: ça sert à se démerder tout seul **
                6 juillet 2017 à 20:32:48

                bonjour bonjour !

                actuellement je teste plein de choses au niveau du compilo qui hurle à la mort dès que j’essaie de compiler un programme en rapport avec wlanapi. déjà, DWORD, ca l'énerve...

                la moyenne d'erreurs est de 500...

                oui avec une ligne de code j'ai eu plus de 500 erreurs...

                je tente donc actuellement de faire marcher du code... pourriez vous me donner juste une ligne de code qui marche histoire de voir si ca vient du compilateur ou pas ?

                sur le screen ci-dessous il n'y a que 3 erreurs

                merci d'avance,

                raphael

                PS : j'inclus bien wlanapi.h et windows.h et ils les trouve !

                EDIT : oui mais je pensais qu'en s'étant déjà connecté au wifi et en connaissant son nom...

                -
                Edité par raphaeldesaintalbin 6 juillet 2017 à 20:40:55

                • Partager sur Facebook
                • Partager sur Twitter
                "La valeur n'attend point le nombre des années" Le Cid, Pierre Corneille, Don Rodrigue parlant au Comte
                  6 juillet 2017 à 20:46:44

                  Quel type de projet fais tu?

                  (win32 console application?)

                  Ps: utilise la version community de visual studio (j'ai l'impression que "for windows desktop" c'est la version qui ne fait que des projet UWP pour windows 8/10...)

                  • Partager sur Facebook
                  • Partager sur Twitter
                  ** La doc, c'est comme le PQ: ça sert à se démerder tout seul **
                    6 juillet 2017 à 22:06:28

                    win 32 console application et éventuellement l'adapter en graphique avec Qt mais pas sûr...

                    • Partager sur Facebook
                    • Partager sur Twitter
                    "La valeur n'attend point le nombre des années" Le Cid, Pierre Corneille, Don Rodrigue parlant au Comte
                      6 juillet 2017 à 22:49:19

                      Fait voir le code (complet) et les erreurs (enfin le début des 500)?
                      • Partager sur Facebook
                      • Partager sur Twitter
                      ** La doc, c'est comme le PQ: ça sert à se démerder tout seul **
                        7 juillet 2017 à 0:22:45

                        J'ai posté un screen avant sur une ligne et sur le code des 500 erreurs il devait en avoir des normales car j'ai juste appelé la fonc wlanopnhandle() (je crois que c'est ca) sans arguments. Je m'attendais a une erreur du type missing arguments at this function mais non.

                        EDIT :

                        alors, j'ai changé de compilo pour télécharger vs comunauty et voila !

                        la ligne est

                        DWORD dwResult = 0;



                        -
                        Edité par raphaeldesaintalbin 10 juillet 2017 à 11:43:18

                        • Partager sur Facebook
                        • Partager sur Twitter
                        "La valeur n'attend point le nombre des années" Le Cid, Pierre Corneille, Don Rodrigue parlant au Comte
                          10 juillet 2017 à 9:41:15

                          up !

                          • Partager sur Facebook
                          • Partager sur Twitter
                          "La valeur n'attend point le nombre des années" Le Cid, Pierre Corneille, Don Rodrigue parlant au Comte
                            10 juillet 2017 à 12:56:05

                            DWORD est déclarer dans windows.h ou l'un de ses sous-includes donc bon c'est pas normal...

                            La seule chose qui me vient a l'esprit, c'est un projet d'un mauvais type?

                            vire le stdafx.h egalement...

                            • Partager sur Facebook
                            • Partager sur Twitter
                            ** La doc, c'est comme le PQ: ça sert à se démerder tout seul **
                              10 juillet 2017 à 13:18:11

                              VICTOIIIIIIIIIIIIIIIIIIIIRE !

                              j'avais oublié la maj au premier W de Windows !

                              EDIT : j'ai désactivé les headers pré-compilés mais pourquoi les enlever étant donné que la compilation devient plus longue ?

                              -
                              Edité par raphaeldesaintalbin 10 juillet 2017 à 14:11:32

                              • Partager sur Facebook
                              • Partager sur Twitter
                              "La valeur n'attend point le nombre des années" Le Cid, Pierre Corneille, Don Rodrigue parlant au Comte
                                10 juillet 2017 à 14:12:14

                                C'est parce que le compilateur est reglé pour utiliser les headers précompilé, une option a viré lors de la creation d'un projet (c'est iinutile pour les petits projets en tout cas). Bon c'est pas grave, laisse le!

                                • Partager sur Facebook
                                • Partager sur Twitter
                                ** La doc, c'est comme le PQ: ça sert à se démerder tout seul **
                                  10 juillet 2017 à 16:13:11

                                  Visiblement tu n'avais pas vu mon édit ou j'ai dit avoir réussi à l'enlever... comme je peux deso compiler du code avec ce foutue api, on va pouvoir passer aux choses sérieuses ! je commence par quoi ?
                                  • Partager sur Facebook
                                  • Partager sur Twitter
                                  "La valeur n'attend point le nombre des années" Le Cid, Pierre Corneille, Don Rodrigue parlant au Comte
                                    10 juillet 2017 à 16:35:31

                                    raphaeldesaintalbin a écrit:

                                    Visiblement tu n'avais pas vu mon édit ou j'ai dit avoir réussi à l'enlever... comme je peux deso compiler du code avec ce foutue api, on va pouvoir passer aux choses sérieuses ! je commence par quoi ?

                                    Le code qui liste les reseaux wifi?


                                    breizhbugs a écrit:

                                    J'aurais bien voulu "jouer" avec cette api, mais je n'ai pas de portable et donc pas d'ordi "wifi capable"!

                                    Bref as tu testé https://msdn.microsoft.com/en-us/library/ms706749(v=vs.85).aspx comme point de depart?

                                    (ainsi que les exemples fournis avec le sdk ?)

                                    (edit: note que tu n'utilisera jamais wlanconnect immediatement, cela passera toujours par selectionner la carte wifi en premier puis, et c'est plus pratique, lister les reseau detecté (et cela doit probablement initialiser leur profil aussi) puis choisir le "bon"!)

                                    -
                                    Edité par breizhbugs 6 juillet 2017 à 13:33:15



                                    • Partager sur Facebook
                                    • Partager sur Twitter
                                    ** La doc, c'est comme le PQ: ça sert à se démerder tout seul **
                                      10 juillet 2017 à 16:39:46

                                      ok j'ai regardé la page et copié/collé l'exemple qui marche à merveille. j'ai créé un fichier cpp et un header qui contiennent la fonction. je vais m'attaquer à la connexion !

                                      EDIT : j'ai réussi pour wlanOpenHandle() donc j'ai un argument sur quatre. un des arguments doit etre mit a NULL donc ça fait deux. J'ai de l'aide sur le discord d'OC pour le GUID. de l'aide pour le troisième argument ?

                                      -
                                      Edité par raphaeldesaintalbin 10 juillet 2017 à 18:54:21

                                      • Partager sur Facebook
                                      • Partager sur Twitter
                                      "La valeur n'attend point le nombre des années" Le Cid, Pierre Corneille, Don Rodrigue parlant au Comte
                                        10 juillet 2017 à 19:48:20

                                        https://msdn.microsoft.com/en-us/library/windows/desktop/ms706783(v=vs.85).aspx

                                        pInterfaceGuid [in]

                                        The GUID of the interface to be queried.

                                        ->The GUID of each wireless LAN interface enabled on a local computer can be determined using the WlanEnumInterfaces function.<-

                                        Devrait aider?

                                        Quand au 3ieme argument de wlanconnect, tu peux avoir lers infos en grande partie grâce a wlangetavailablenetworklist, dans les paramètres de descriptions de chaque réseau capté...

                                        -
                                        Edité par breizhbugs 10 juillet 2017 à 19:54:10

                                        • Partager sur Facebook
                                        • Partager sur Twitter
                                        ** La doc, c'est comme le PQ: ça sert à se démerder tout seul **
                                          11 juillet 2017 à 18:32:15

                                          Bonjour ! Je me débrouille pour récupérer le GUID mais j'ai vrae du mal pour le troisième la... si vous pouviez me donner une piste... surtout que struct c'est plus du c que du c++
                                          • Partager sur Facebook
                                          • Partager sur Twitter
                                          "La valeur n'attend point le nombre des années" Le Cid, Pierre Corneille, Don Rodrigue parlant au Comte
                                            11 juillet 2017 à 21:55:23

                                            ben une partie des paramètres genre ssid, type de sécurité etc sont données en information dans la description de chaque réseau listé par wlangetavailablenetworklist.

                                            • Partager sur Facebook
                                            • Partager sur Twitter
                                            ** La doc, c'est comme le PQ: ça sert à se démerder tout seul **
                                              11 juillet 2017 à 22:24:55

                                              Oui mais j'arrive pas à construire de manière correcte les structures
                                              • Partager sur Facebook
                                              • Partager sur Twitter
                                              "La valeur n'attend point le nombre des années" Le Cid, Pierre Corneille, Don Rodrigue parlant au Comte
                                                11 juillet 2017 à 23:04:14

                                                code?

                                                Sinon de toute façon, va falloir que tu t'aide de l'exemple: https://msdn.microsoft.com/en-us/library/windows/desktop/aa816369(v=vs.85).aspx

                                                -
                                                Edité par breizhbugs 12 juillet 2017 à 12:44:55

                                                • Partager sur Facebook
                                                • Partager sur Twitter
                                                ** La doc, c'est comme le PQ: ça sert à se démerder tout seul **
                                                  13 juillet 2017 à 15:32:36

                                                  Pour l'instant je suis sur le GUID mais j'ai besoin du fichier shell32.dll pour la fonction GuidFromString()... pourriez vous me dire où le trouver car si je fais un simple #include <shell32.dll> il ne le trouve pas...

                                                  merci d'avance

                                                  • Partager sur Facebook
                                                  • Partager sur Twitter
                                                  "La valeur n'attend point le nombre des années" Le Cid, Pierre Corneille, Don Rodrigue parlant au Comte
                                                    13 juillet 2017 à 19:55:03

                                                    Rtfm: https://msdn.microsoft.com/fr-fr/library/windows/desktop/bb776431(v=vs.85).aspx dit d'utiliser https://msdn.microsoft.com/fr-fr/library/windows/desktop/bb776431(v=vs.85).aspx

                                                    Encore une fois arreter d'etre obnubiler avec uniquement wlanconnect et voyer l'exemple fourni avec le sdk!

                                                    -
                                                    Edité par breizhbugs 13 juillet 2017 à 19:56:33

                                                    • Partager sur Facebook
                                                    • Partager sur Twitter
                                                    ** La doc, c'est comme le PQ: ça sert à se démerder tout seul **
                                                      14 juillet 2017 à 13:01:36

                                                      euh tes deux liens pointent vers le même lien... et j'ai besoin de convertir cette string en GUID...
                                                      • Partager sur Facebook
                                                      • Partager sur Twitter
                                                      "La valeur n'attend point le nombre des années" Le Cid, Pierre Corneille, Don Rodrigue parlant au Comte
                                                        14 juillet 2017 à 13:15:30

                                                        raphaeldesaintalbin a écrit:

                                                        euh tes deux liens pointent vers le même lien... et j'ai besoin de convertir cette string en GUID...


                                                        oui pardon, mais bon faut lire quand même la doc:

                                                        [GUIDFromString is available through Windows XP with Service Pack 2 (SP2) or Windows Vista. It might be altered or unavailable in subsequent versions. Applications should use CLSIDFromString or IIDFromString in place of this function.]

                                                        utilise la fonction recommandée?

                                                        • Partager sur Facebook
                                                        • Partager sur Twitter
                                                        ** La doc, c'est comme le PQ: ça sert à se démerder tout seul **
                                                          14 juillet 2017 à 21:13:09

                                                          Ok super merci beaucoup ! et désolé je pensais que IIDFromString créait un IID (ce qui n'existe pas à ma connaissance mais je n'ai pas réfléchi sur le coup)...

                                                          j'ai donc enfin réussi à obtenir ce GUID dans une variable de type GUID !

                                                          Reste donc à s'occuper des structures... Je m'y mettrais demain mais je dois avouer avoir avec le principe même d'une structure(je sais que c'est une sorte de classe ou les attributs et les méthodes sont en public par défaut et que c'est assez utilisé en C mais pour ce qui est de l'utilisation...)

                                                          j'éditerais mon post demain pour vous dire ou j'en suis...

                                                          merci pour votre aide,

                                                          Raphael

                                                          • Partager sur Facebook
                                                          • Partager sur Twitter
                                                          "La valeur n'attend point le nombre des années" Le Cid, Pierre Corneille, Don Rodrigue parlant au Comte
                                                            16 juillet 2017 à 13:30:41

                                                            Bonjour ! Je serais malheureusement absent cette semaine...

                                                            mille excuses,

                                                            raphael

                                                            • Partager sur Facebook
                                                            • Partager sur Twitter
                                                            "La valeur n'attend point le nombre des années" Le Cid, Pierre Corneille, Don Rodrigue parlant au Comte
                                                              16 juillet 2017 à 18:39:04

                                                              No problème!

                                                              A bientôt.

                                                              • Partager sur Facebook
                                                              • Partager sur Twitter
                                                              ** La doc, c'est comme le PQ: ça sert à se démerder tout seul **

                                                              lister les wifis disponibles et s'y connecter

                                                              × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                                                              × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                                                              • Editeur
                                                              • Markdown