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 :

Enregistrer un message du dos et activer une de ses commandes


Sujet :

C

  1. #1
    Membre éclairé Avatar de _SamSoft_
    Profil pro
    Étudiant
    Inscrit en
    Février 2007
    Messages
    798
    Détails du profil
    Informations personnelles :
    Âge : 33
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2007
    Messages : 798
    Par défaut Enregistrer un message du dos et activer une de ses commandes
    Bonjour, je voulais savoir s'il était possiible en C, bien entendu de lancer une commande dos (exemple : ipconfig) au moment de la connection sur le net et d'enregistrer le message retourné dans une variable de type chaine de caractère cela donnerait :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    1)Au moment de la connection à internet :
    2)Envoyer la commande "ipconfig"
    3)Prendre la valeur retournée et la mettre dans une variable
    4)Quitter le programme
    Je ne trouve pas la solution alors si vous avez des tutos ou des morceaux de codes, ce serait très sympa

    Merci d'avance

  2. #2
    Membre émérite Avatar de stephl
    Profil pro
    Développeur informatique
    Inscrit en
    Février 2007
    Messages
    643
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2007
    Messages : 643
    Par défaut
    Le résultat peut aisément être stocké dans un fichier texte que l'on peut ensuite aller lire:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ipconfig >Res_ipconfig.txt

  3. #3
    Membre extrêmement actif

    Homme Profil pro
    Ingénieur R&D
    Inscrit en
    Juin 2003
    Messages
    4 506
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2003
    Messages : 4 506
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
     
    #include <stdlib.h>
    <...>
    system("ipconfig >sortie.txt");
    Ensuite il faut voir ce que tu veux extraire de la sortie.Pour cela il te faudra ouvrir le fichier (fopen) et lire ce qui t'interesse (fread ou fgets)

  4. #4
    Membre éclairé Avatar de _SamSoft_
    Profil pro
    Étudiant
    Inscrit en
    Février 2007
    Messages
    798
    Détails du profil
    Informations personnelles :
    Âge : 33
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2007
    Messages : 798
    Par défaut
    merci je vais essayer cela de suite je vous dirai si tout va bien

  5. #5
    Membre éclairé Avatar de _SamSoft_
    Profil pro
    Étudiant
    Inscrit en
    Février 2007
    Messages
    798
    Détails du profil
    Informations personnelles :
    Âge : 33
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2007
    Messages : 798
    Par défaut
    Ca marche au poil mais vous n'auriez pas une idée pour executer mon prog au moment de la connection avec internet ou alors créer une boucle non bloquante qui cherche si oui ou non on est connecté, le programme devrait etre lancé au demarage et etre caché, vous n'auriez pas une idée ?

  6. #6
    Membre extrêmement actif

    Homme Profil pro
    Ingénieur R&D
    Inscrit en
    Juin 2003
    Messages
    4 506
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2003
    Messages : 4 506
    Par défaut
    Citation Envoyé par _SamSoft_
    Ca marche au poil mais vous n'auriez pas une idée pour executer mon prog au moment de la connection avec internet ou alors créer une boucle non bloquante qui cherche si oui ou non on est connecté, le programme devrait etre lancé au demarage et etre caché, vous n'auriez pas une idée ?
    Il existe des API mais sont fonction de ton système et comme de mémoire il me semble que tu es sous Mac... ?

  7. #7
    Membre éclairé Avatar de _SamSoft_
    Profil pro
    Étudiant
    Inscrit en
    Février 2007
    Messages
    798
    Détails du profil
    Informations personnelles :
    Âge : 33
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2007
    Messages : 798
    Par défaut
    perdu je suis sous windows xp sp2 (je vais bientot aller voir vista dans 1 mois ) je voudrais pouvoir faire cela à partir d'une unique application console, personne n' a d'idée ?

  8. #8
    Membre chevronné
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    349
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 349
    Par défaut
    Déjà, à partir d'une application console, au lieu d'utiliser ipconfig redirigée dans un fichier et de relire le fichier, tu peux utiliser _popen:

    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
    #include <stdio.h>
    int main(int argc, char* argv[])
    {
           FILE *p;
            char s[256];
     
            p = _popen("ipconfig","rt");
            if (p == 0)
            {
                    printf("Erreur\n");
                    getchar();
                    return 0;
            }
            while (fgets(s,sizeof(s),p))
            {
                    ...
            }
            _pclose(p);
    }
    Pour savoir si tu es connecté à Internet, il existe la fonction de l'API Windows InternetGetConnectedState (qui ne fonctionne pas avec tous les FAI):

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
            DWORD state;
            typedef BOOL (WINAPI *PF_INETGETCONNECTEDSTATE)(LPDWORD, DWORD);
            PF_INETGETCONNECTEDSTATE pfInternetGetConnectedState;
    	const HINSTANCE hWinInet = ::LoadLibrary("Wininet.DLL");
     
            pfInternetGetConnectedState = (PF_INETGETCONNECTEDSTATE) GetProcAddress(hWinInet, "InternetGetConnectedState");
     
            if(pfInternetGetConnectedState(&state, 0) != FALSE)
                printf("Connection state : %x\n", state);
     
            ::FreeLibrary(hWinInet);

  9. #9
    Expert éminent
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 68
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Par défaut
    Citation Envoyé par hegros
    Il existe des API mais sont fonction de ton système et comme de mémoire il me semble que tu es sous Mac... ?
    Oui ça parait évident : "Enregistrer un message du dos"...

  10. #10
    Membre extrêmement actif

    Homme Profil pro
    Ingénieur R&D
    Inscrit en
    Juin 2003
    Messages
    4 506
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2003
    Messages : 4 506
    Par défaut
    Citation Envoyé par Emmanuel Delahaye
    Oui ça parait évident : "Enregistrer un message du dos"...
    Je parlais pour détecter qu'une connexion internet est active. Je crois que tu me dois de plates excuses

  11. #11
    Membre éclairé Avatar de _SamSoft_
    Profil pro
    Étudiant
    Inscrit en
    Février 2007
    Messages
    798
    Détails du profil
    Informations personnelles :
    Âge : 33
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2007
    Messages : 798
    Par défaut
    je vais regarder ca demain, j'ai un controle à réviser, sinon ca marche pour neuf télécom ? seconde question : il faut que je crée une windows application et pas une console c'est ca ?

  12. #12
    Expert éminent
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 397
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 397
    Par défaut
    Citation Envoyé par _SamSoft_
    seconde question : il faut que je crée une windows application et pas une console c'est ca ?
    Je ne vios pas pourquoi : Pratiquement toutes les fonctions Windows marchent en mode console (y compris la création de fenêtres) et je ne vois pas pourquoi celle-ci réclamerait un programme graphique...
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  13. #13
    Membre éclairé Avatar de _SamSoft_
    Profil pro
    Étudiant
    Inscrit en
    Février 2007
    Messages
    798
    Détails du profil
    Informations personnelles :
    Âge : 33
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2007
    Messages : 798
    Par défaut
    Alors tout est bon :

    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
    /*
      Name: Take_Ip
      Copyright: GNU/GPL
      Author: Samy Hocine, samyhocine@hotmail.fr
      Date: 20/03/07 19H30
      Description: This is a software created for take an ip
    */
    #include <stdio.h>
    #include <stdlib.h>
    #include <windows.h>
     
    int main(int argc, char *argv[])
    {
        DWORD state;
        typedef BOOL (WINAPI *PF_INETGETCONNECTEDSTATE)(LPDWORD, DWORD);
        PF_INETGETCONNECTEDSTATE pfInternetGetConnectedState;
    	const HINSTANCE hWinInet = LoadLibrary("Wininet.DLL");
        pfInternetGetConnectedState = (PF_INETGETCONNECTEDSTATE) GetProcAddress(hWinInet, "InternetGetConnectedState");
        if(pfInternetGetConnectedState(&state, 0) != FALSE)
        {
        system("ipconfig >ip_release.txt");
        }	
        FreeLibrary(hWinInet);
        return 0;
    }
    Mais vous n'avez pas un morceau de code pour executer un quelconque programme dès l'ouverture du pc automatiquement ?

  14. #14
    Expert éminent
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 397
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 397
    Par défaut
    Ça dépend si c'est avant ou après l'ouverture de session...
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  15. #15
    Membre émérite Avatar de stephl
    Profil pro
    Développeur informatique
    Inscrit en
    Février 2007
    Messages
    643
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2007
    Messages : 643
    Par défaut
    Citation Envoyé par _SamSoft_
    Mais vous n'avez pas un morceau de code pour executer un quelconque programme dès l'ouverture du pc automatiquement ?
    Je n'ai pas vérifié, mais sous Windows, il me semble que si vous placez un raccourci vers le programme dans "Menu Démarrer\Programmes\Démarrage", alors le programme sera lancé automatiquement. A vérifier cependant...

  16. #16
    Membre éclairé Avatar de _SamSoft_
    Profil pro
    Étudiant
    Inscrit en
    Février 2007
    Messages
    798
    Détails du profil
    Informations personnelles :
    Âge : 33
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2007
    Messages : 798
    Par défaut
    Citation Envoyé par _SamSoft_
    Mais vous n'avez pas un morceau de code pour executer un quelconque programme dès l'ouverture du pc automatiquement ?
    J'ai bien dit automatiquement donc votre solution selon laquelle il faudrait placer un raccourcis dans demarage ne me convient pas trop , vous n'auriez pas un code qui execute le programme au moment de l'ouverture de la session ?

  17. #17
    Expert confirmé
    Avatar de Thierry Chappuis
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Mai 2005
    Messages
    3 499
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Suisse

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 499
    Par défaut
    Citation Envoyé par _SamSoft_
    J'ai bien dit automatiquement donc votre solution selon laquelle il faudrait placer un raccourcis dans demarage ne me convient pas trop , vous n'auriez pas un code qui execute le programme au moment de l'ouverture de la session ?
    Un lancement automatique... c'est justement ce qui était proposé, non? QU'est-ce qui ne te convient pas avec la solution de stephl?

    Thierry
    "The most important thing in the kitchen is the waste paper basket and it needs to be centrally located.", Donald Knuth
    "If the only tool you have is a hammer, every problem looks like a nail.", probably Abraham Maslow

    FAQ-Python FAQ-C FAQ-C++

    +

  18. #18
    Expert éminent
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 68
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Par défaut
    Citation Envoyé par _SamSoft_
    J'ai bien dit automatiquement donc votre solution selon laquelle il faudrait placer un raccourcis dans demarage ne me convient pas trop , vous n'auriez pas un code qui execute le programme au moment de l'ouverture de la session ?
    Bah, le raccourci, il est crée une fois, ensuite, c'est automatique, car il est sauvegardé dans le répertoire démarrage automatique... C'est un répertoire du bureau, donc de la session courante. Tu n'as jamais appris à utiliser Windows ?

  19. #19
    Membre extrêmement actif

    Homme Profil pro
    Ingénieur R&D
    Inscrit en
    Juin 2003
    Messages
    4 506
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2003
    Messages : 4 506
    Par défaut
    Citation Envoyé par _SamSoft_
    vous n'auriez pas un code qui execute le programme au moment de l'ouverture de la session ?
    Et ce code, pour executer le programme au moment de l'ouverture de la session, comment il va s'executer au démarrage ?


    Ce que tu peux faire par contre c'est dans ton programme, au tout début, venir écrire dans la base de registre windows pour lui dire d'executer tel programme au lancement de windows, ainsi pas besoin de placer un raccourci Il faudra par contre executer une première fois manuellement le programme (beh oui pour ecrire la premiére fois dans la base...)

  20. #20
    Membre éclairé Avatar de _SamSoft_
    Profil pro
    Étudiant
    Inscrit en
    Février 2007
    Messages
    798
    Détails du profil
    Informations personnelles :
    Âge : 33
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2007
    Messages : 798
    Par défaut
    Citation Envoyé par hegros
    Et ce code, pour executer le programme au moment de l'ouverture de la session, comment il va s'executer au démarrage ?


    Ce que tu peux faire par contre c'est dans ton programme, au tout début, venir écrire dans la base de registre windows pour lui dire d'executer tel programme au lancement de windows, ainsi pas besoin de placer un raccourci Il faudra par contre executer une première fois manuellement le programme (beh oui pour ecrire la premiére fois dans la base...)
    C'est exactement la solution que j'attendais, alors quelqu'un a un tuto ou un code à me poposer ?

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Réponses: 1
    Dernier message: 15/10/2009, 13h46
  2. Réponses: 4
    Dernier message: 20/12/2007, 07h58
  3. Réponses: 2
    Dernier message: 22/09/2007, 19h38
  4. [MS-DOS] Une commande DOS pour activer les mises à jour auto
    Par Furius dans le forum Scripts/Batch
    Réponses: 20
    Dernier message: 02/12/2005, 16h21
  5. commande dos pour résoudre une adresse ip
    Par stephy dans le forum Développement
    Réponses: 2
    Dernier message: 17/12/2002, 14h04

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