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 :

Piloter un ordinateur par un programme c++ ?


Sujet :

C++

  1. #1
    Membre actif
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    77
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 77
    Par défaut Piloter un ordinateur par un programme c++ ?
    Salut à tous,

    Alors voilà je suis actuellement étudiant en informatique et j'aimerais approfondir mes connaissance car j'aimerais pouvoir créer un programme pour automatiser des taches répétitives que je fais tous les jours.

    Genre :
    - Lancer mon freeplayer.
    - Piloter ma souris.
    - Mettre en veille.
    - Redémarrer.
    - Faire une saisie au clavier dans un formulaire logiciel ou web.
    - etc...

    J'ai des bases en C/C++ ainsi qu'avec l'API Qt mais j'aimerais que l'on m'éclaire sur ce qu'il faut que j'utilise pour faire cela.

    Merci d'avance,

    ++

  2. #2
    Expert confirmé
    Avatar de Melem
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2006
    Messages
    3 656
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 3 656
    Par défaut
    C'est de la manipulation système donc ça se fait avec les fonctions de ton système. Quel est ton système ?

  3. #3
    Membre actif
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    77
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 77
    Par défaut
    A ok ben pour l'instant je tourne sous Window 7 64 Bits Ultimate.

    Mais j'aimerais pouvoir le faire aussi sur Xp et Vista donc sur tout les Win32-64

  4. #4
    Expert confirmé
    Avatar de Melem
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2006
    Messages
    3 656
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 3 656
    Par défaut
    Du moment que t'es sous Windows, tu peux généralement faire du code qui fonctionne aussi bien sur Windows 95 que sur Windows 7 ou encore Windows Mobile ..., 32 ou 64 bits ..., grâce à l'API Windows.

    - Lancer mon freeplayer => [FAQ] Comment lancer un processus ?

    - Piloter ma souris. => [FAQ] Comment simuler l'appui sur une touche ?

    - Mettre en veille. => [FAQ] Comment mettre l'ordinateur en veille ou en veille prolongée ?

    - Redémarrer. => [FAQ] Comment éteindre l'ordinateur ?

    - Faire une saisie au clavier dans un formulaire logiciel ou web. => C'est généralement de la bidouille. Que veux-tu faire exactement (exemple concret) ? On y arrive en donnant le focus au contrôle (à l'aide de la fonction SetFocus) puis on simule des frappes au clavier. Mais comme je l'ai dit, c'est fort à parier que c'est de la bidouille.

    - etc. => [FAQ] Documentation et outils pour la programmation Windows.

  5. #5
    Membre actif
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    77
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 77
    Par défaut
    A ok merci beaucoup il est vrai que l'api windows je débute un peu j'ai plus l'habitude de Qt mais en faite j'aimerais faire un logiciel qui fasse un peu comme une assistance a distance.

    C'est à dire lancer le programme sur un ordinateur du client afin que les étapes se fasse automatiquement.

    J'ai pas d'exemple précis en tête mais souvent j'ai des amis qui me demande a chaque fois une assistance a distance par msn pour configurer leur connexion internet et c'est tout le temps répétitif donc je me suis dis pourquoi pas faire un logiciel que je programme et que je leur donne pour que cela fasse les étapes tout seul ^^

    Parmis ces étape il y a :
    - Configuration des IP
    - Configuration du routeur (par le biais d'un explorateur web)
    - Configuration des port (par le biais d'un explorateur web)
    - ...

    Je sais je suis fainéant lol

    Mais voilà j'aimerais bien savoir comment prendre le controle d'un ordinateur par un programme codé en C/C++

  6. #6
    Expert confirmé
    Avatar de Melem
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2006
    Messages
    3 656
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 3 656
    Par défaut
    J'ai pas d'exemple précis en tête mais souvent j'ai des amis qui me demande a chaque fois une assistance a distance par msn pour configurer leur connexion internet et c'est tout le temps répétitif donc je me suis dis pourquoi pas faire un logiciel que je programme et que je leur donne pour que cela fasse les étapes tout seul ^^

    Parmi ces étape il y a :
    - Configuration des IP
    - Configuration du routeur (par le biais d'un explorateur web)
    - Configuration des port (par le biais d'un explorateur web)
    - ...
    Pas besoin du contrôle du clavier et de la souris pour ça. Il existe des APIs pour gérer tout cela. L'interface graphique c'est pour les humains. Dans les applications, on utilise les APIs et non les programmes développés pour les humains (qui, comme tous les autres programmes bien conçus, utilisent les APIs ...). Pour ton projet, l'API en question ici est IP Helper. Si t'as cependant vraiment envie de jouer avec le clavier et le souris, je t'ai déjà indiqué les fonctions à utiliser. En tout cas, je te l'ai déjà dit, c'est de la manipulation système, ce n'est pas quelque chose pour laquelle Qt a été conçue. Il faut utiliser les APIs.

  7. #7
    Membre actif
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    77
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 77
    Par défaut
    Oui pour l'ip je le faisait avec un batch jusqu'à maintenant mais pour le routeur c'est les routeurs des FAI comme Orange ou Free

    Donc obliger de se connecter sur leurs pages html pour gérer les routeur et donc obliger de piloter le navigateur web via saisie souris et clavier.

  8. #8
    Expert confirmé
    Avatar de Melem
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2006
    Messages
    3 656
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 3 656
    Par défaut
    Donc obliger de se connecter sur leurs pages html pour gérer les routeur et donc obliger de piloter le navigateur web via saisie souris et clavier.
    Non mais c'est quoi cette obsession envers le clavier et la souris !?

    Si la page html transmet les données par la methode GET, alors tu n'as qu'à ouvrir l'URL cible depuis ton programme à l'aide de ShellExecute par exemple.

    Si la page html transmet les données par la méthode POST, alors il faudra mettre un peu les mains dans le protocole HTTP pour soumettre ces données via ton programme. Plutôt que d'implémenter un client HTTP avec des sockets et tout ça, tu peux utiliser l'API WinInet par exemple.

  9. #9
    Inactif  
    Avatar de Mac LAK
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    3 893
    Détails du profil
    Informations personnelles :
    Âge : 50
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Octobre 2004
    Messages : 3 893
    Par défaut
    Ou, pour ne pas avoir à décortiquer le HTTP à la main, tu peux utiliser wput et wget...

    Dans tous les cas, paramétrer un système de façon automatique, ça se fait sans faire joujou avec la souris... A l'exception notable de l'UAC sous Windows, ou des demandes de passage en super-user sous Unix, bien entendu, car ces opérations ne sont de toutes façons JAMAIS automatisables, le système l'interdit formellement. La seule condition préalable est de lancer le programme de paramétrage en mode Administrateur / root, et de laisser un humain devant le PC pour entrer une éventuelle confirmation de modification du système.
    Mac LAK.
    ___________________________________________________
    Ne prenez pas la vie trop au sérieux, de toutes façons, vous n'en sortirez pas vivant.

    Sources et composants Delphi sur mon site, L'antre du Lak.
    Pas de question technique par MP : posez-la dans un nouveau sujet, sur le forum adéquat.

    Rejoignez-nous sur : Serveur de fichiers [NAS] Le Tableau de bord projets Le groupe de travail ICMO

  10. #10
    Membre actif
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    77
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 77
    Par défaut
    Oui mais cela ne me semble pas faisable car à l'identification ici par exemple :

    http://subscribe.free.fr/login/

    Il s'agit bien d'une méthode get de la forme :

    http://adsl.free.fr/compte/console.pl?id=IDABONNE&idt=PASSCRYPTE

    Or le mot de passe crypté est déffirent à chaque connexion sur l'espace de gestion.
    Il faut donc le saisir dans le formulaire et valider celui ci pour pouvoir accéder à l'espace.

  11. #11
    Expert confirmé
    Avatar de Melem
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2006
    Messages
    3 656
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 3 656
    Par défaut
    Ce n'est pas ce qu'on constate en lisant les sources de la page :
    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
    <form class="form" action="login.pl" method="post">
      <table border="0" cellspacing="0" style="margin: auto">
        <tr>
          <td colspan="2"><p class="bold"> Pour accéder à votre compte, merci de saisir vos identifiants </p></td>
        </tr>
        <tr>
          <td><p class="bold red"> Identifiant </p></td>
          <td><input type="text" name="login" maxlength="20" size="20" value="" class="form-input" /></td>
        </tr>
        <tr>
          <td><p class="bold red"> Mot de passe </p></td>
          <td><input type="password" name="pass" maxlength="10" size="20" class="form-input" />
            <input name="ok" type="submit" value="Connexion" alt="Envoyer" class="form-button" />
          </td>
        </tr>
      </table>
    </form>

  12. #12
    Membre actif
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    77
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 77
    Par défaut
    Oue mais dans tout les cas le mot de passe reste crypté donc c'est impossible...

  13. #13
    Inactif  
    Avatar de Mac LAK
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    3 893
    Détails du profil
    Informations personnelles :
    Âge : 50
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Octobre 2004
    Messages : 3 893
    Par défaut
    Citation Envoyé par barbuslex Voir le message
    Oue mais dans tout les cas le mot de passe reste crypté donc c'est impossible...
    Cela m'étonnerait beaucoup que ce soit ton navigateur qui crypte le MdP avant de l'envoyer... Pour ça, il faudrait qu'il passe par un code Javascript sur l'envoi du formulaire, et n'importe quel péquenot est alors capable de récupérer le source JS correspondant et d'inverser le cryptage.

    Il est bien plus probable que ce que tu vois dans la barre d'adresse du navigateur soit le résultat d'une redirection serveur, et c'est le serveur qui met cette donnée cryptée : le navigateur ne fait alors que la répéter pour que le serveur maintienne la connexion.
    Par programme, que ce soit en C++ ou via les outils que je t'ai cités précédemment, tu peux mémoriser le contexte (cookies notamment) et intercepter les redirections, ça ne pose donc pas de problèmes particulier.

    Tu n'as qu'à capturer le flux réseau de ta machine lors d'une connexion avec Wireshark, par exemple, et regarder les trames HTTP émises. Tu verras alors ce qu'il se passe réellement côté communication.
    Mac LAK.
    ___________________________________________________
    Ne prenez pas la vie trop au sérieux, de toutes façons, vous n'en sortirez pas vivant.

    Sources et composants Delphi sur mon site, L'antre du Lak.
    Pas de question technique par MP : posez-la dans un nouveau sujet, sur le forum adéquat.

    Rejoignez-nous sur : Serveur de fichiers [NAS] Le Tableau de bord projets Le groupe de travail ICMO

  14. #14
    Expert confirmé
    Avatar de Melem
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2006
    Messages
    3 656
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 3 656
    Par défaut
    Citation Envoyé par barbuslex
    Oue mais dans tout les cas le mot de passe reste crypté donc c'est impossible...
    Mais non ...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <!-- code simplifié -->
    <form action="login.pl" method="post">
        <input type="text" name="login" />
        <input type="password" name="pass" />
        <input type="submit" name="ok" value="Connexion" />
    </form>
    Là j'ai mis en exergue les trois seuls inputs du formulaire. L'input ok peut sembler à priori sans aucune importance, mais qui sait si le serveur vérifie également la présence de ce paramètre pour vérifier "l'authenticité" du site duquel provient la requête (une sorte de REFER). Ouais, c'est pas très solide mais qu'est-ce qu'on ne ferait pas pour sécuriser au mieux son site ...

    Bref, le code montre bien que les informations sont transmises en clair mais au moins c'est déjà pas en GET ...

    Citation Envoyé par Mac LAK
    Cela m'étonnerait beaucoup que ce soit ton navigateur qui crypte le MdP avant de l'envoyer... Pour ça, il faudrait qu'il passe par un code Javascript sur l'envoi du formulaire, et n'importe quel péquenot est alors capable de récupérer le source JS correspondant et d'inverser le cryptage.
    Un bon malfaiteur ne perdrait même pas son temps à déchiffrer le mot de passe (en plus si le mot de passe n'est pas chiffré mais hashé - ce qui est plus souvent le cas - ce ne sera pas une partie de plaisir de tenter de le restituer ...), il n'a qu'à se connecter en utilisant directement les paramètres attendus par le serveur ...

    Bref, mettre en place un système d'authentification sur un site web et généralement dans n'importe quel système client/serveur, sans SSL, c'est pas du tout aisé ...

  15. #15
    Inactif  
    Avatar de Mac LAK
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    3 893
    Détails du profil
    Informations personnelles :
    Âge : 50
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Octobre 2004
    Messages : 3 893
    Par défaut
    Citation Envoyé par Melem Voir le message
    Un bon malfaiteur ne perdrait même pas son temps à déchiffrer le mot de passe (en plus si le mot de passe n'est pas chiffré mais hashé - ce qui est plus souvent le cas - ce ne sera pas une partie de plaisir de tenter de le restituer ...), il n'a qu'à se connecter en utilisant directement les paramètres attendus par le serveur ...
    Tu crois sincèrement que quelqu'un qui oserait mettre un "cryptage" dans une fonction JS utiliserait quelque chose de plus élaboré qu'un XOR ou un César ?

    Citation Envoyé par Melem Voir le message
    Bref, mettre en place un système d'authentification sur un site web et généralement dans n'importe quel système client/serveur, sans SSL, c'est pas du tout aisé ...
    Ah ça, c'est toujours un problème en effet.
    Mac LAK.
    ___________________________________________________
    Ne prenez pas la vie trop au sérieux, de toutes façons, vous n'en sortirez pas vivant.

    Sources et composants Delphi sur mon site, L'antre du Lak.
    Pas de question technique par MP : posez-la dans un nouveau sujet, sur le forum adéquat.

    Rejoignez-nous sur : Serveur de fichiers [NAS] Le Tableau de bord projets Le groupe de travail ICMO

Discussions similaires

  1. [C#] Comment éteindre l'ordinateur par programmation ?
    Par hobotalker dans le forum Windows Forms
    Réponses: 10
    Dernier message: 10/04/2018, 13h25
  2. Fermer l'ordinateur par programme
    Par blondelle dans le forum C++Builder
    Réponses: 13
    Dernier message: 11/10/2008, 12h20
  3. Réponses: 3
    Dernier message: 28/06/2005, 09h07
  4. Réponses: 2
    Dernier message: 05/12/2003, 11h37

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