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 :

Ouvrir un logiciel avec un programme


Sujet :

C++

  1. #1
    Membre du Club
    Profil pro
    Ingénieur Développement
    Inscrit en
    Juin 2006
    Messages
    140
    Détails du profil
    Informations personnelles :
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur Développement

    Informations forums :
    Inscription : Juin 2006
    Messages : 140
    Points : 58
    Points
    58
    Par défaut Ouvrir un logiciel avec un programme
    Salut j'ai fait un programme qui crée une interface où l'on saisie un Login et un Password pour pouvoir accéder à l'utilisation d'un logiciel. J'ai créé une base de données sous "Access" où j'ai mis les "Login" et les "Password" et je l'ai connectée à mon programme. Ce dernier s'exécute lorsqu'on clique sur le bouton "OK" de mon interface. Pour l'instant, mon programme affiche le message "Bienvenue" quand le Login et Le Password saisies correspondent. je voudrais l'appliquer à un logiciel maintenant, c'est à dire que si on double clique sur l'icone du logiciel, mon programme se met en route, alors la on saisie un Login et un Password. S'ils sont bon alors le logiciel s'ouvre. qu'est ce que je dois écrire après la ligne ShowMessage("Bienvenue") pour que le logiciel s'ouvre. Mon code actuelle et comme ceci :
    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
    void __fastcall TForm1::OKButtonClick(TObject *Sender)
    {
    // ouverture et connexion bd et programme
    Session1->Open();
    Database1->Open();
    Table1->Open();
    if(Trim(LoginZone->Text) == "" || Trim(PasswordZone->Text) =="")
     {
     ShowMessage("Veuillez saisir un nom d'utilisateur et un mot de passe svp");
     LoginZone->Text="";
     PasswordZone->Text="";
     }
     else {
     Query1->SQL->Clear();
      AnsiString requete = "select count(Login) as nbReponse from T_User where Login= '"+LoginZone->Text+"' and Password= '"+PasswordZone->Text+"'";
      Query1->SQL->Add(requete);
      Query1->Open();
    int nbrep = Query1->FieldByName("nbReponse")->AsInteger;
    if (nbrep>0){ // Login et Password correspondent
                 ShowMessage("Bienvenue");
                }
                else{ ShowMessage("Nom d'utilisateur ou mot de passe invalide");}
    Query1->Close();
         }
    Session1->Close();
    Database1->Close();
    Table1->Close();
    }
    Merci pour votre aide

  2. #2
    Membre confirmé Avatar de themadmax
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    446
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 446
    Points : 496
    Points
    496
    Par défaut
    Je comprend pas tout a fait ce que tu veux faire mais si tu veux lancer un programme depuis un autre tu as different possibilité:

    -WinExec (deprecié) http://msdn.microsoft.com/library/de...se/winexec.asp
    -CreateProcess http://msdn.microsoft.com/library/de...ateprocess.asp
    -execv
    http://dpobel.free.fr/man/html/affic...905/man/execv/

    Mais si c'est pour de la sécurité, c'est pas terrible car l'utilisateur faire ton premiere program de test de pwd et lancer manuellement l'autre !
    Tu peut integré le code de test tu password dans le meme soft.
    Ou si tu veut vraiment 2 appli tu peut passé un peusdo code en parametre au 2eme soft qui testera sa validité
    ________________________________________________
    http://bliquid.fr : Blog sur Android et l'Acer Liquid

  3. #3
    Membre du Club
    Profil pro
    Ingénieur Développement
    Inscrit en
    Juin 2006
    Messages
    140
    Détails du profil
    Informations personnelles :
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur Développement

    Informations forums :
    Inscription : Juin 2006
    Messages : 140
    Points : 58
    Points
    58
    Par défaut
    En fait c plus simple que ça. je veux juste ajouter une ligne dans mon code qui m'ouvre une application (un fichier par exemple) qui est sur l'ordinateur. c quoi la syntaxe? est ce que je dois utiliser son chemin?

  4. #4
    Membre habitué Avatar de b Oo
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    179
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 179
    Points : 185
    Points
    185
    Par défaut
    Salut,
    la commande system est la réponse à ton problème.

    A+
    b Oo

  5. #5
    Membre du Club
    Profil pro
    Ingénieur Développement
    Inscrit en
    Juin 2006
    Messages
    140
    Détails du profil
    Informations personnelles :
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur Développement

    Informations forums :
    Inscription : Juin 2006
    Messages : 140
    Points : 58
    Points
    58
    Par défaut
    Citation Envoyé par b Oo
    Salut,
    la commande system est la réponse à ton problème.

    A+
    génial maintenant j'ai deux méthodes, car j'ai réussi à le faire grâce à la fonction ShellExecute.

  6. #6
    Membre chevronné
    Avatar de poukill
    Profil pro
    Inscrit en
    Février 2006
    Messages
    2 155
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 2 155
    Points : 2 107
    Points
    2 107
    Par défaut
    Pense au si tu as terminé...

  7. #7
    Membre du Club
    Profil pro
    Ingénieur Développement
    Inscrit en
    Juin 2006
    Messages
    140
    Détails du profil
    Informations personnelles :
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur Développement

    Informations forums :
    Inscription : Juin 2006
    Messages : 140
    Points : 58
    Points
    58
    Par défaut
    maintenant je voudrais faire le contraire, j'ai un programme d'authentification Login Password et je voudrais le faire executer en cliquant sur une icone d'une application. par exemple si on veut jouer au solitaire alors si on clique dessus mon programme va s'executer. donc on sera obliger de saisir un login et un password pour jouer. est ce que ça peut se faire ?

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

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 369
    Points : 41 519
    Points
    41 519
    Par défaut
    Pour ça, il faut intercepter le clic sur le raccourci déterminer si c'est un des raccourcis que tu veux protégér, demander ou non le mot de passe, puis réussir à lancer sa cible.

    Et encore, ça n'interceptera pas les exécutables.
    En changeant dans les types de fichier, tu devrais peut-être (c'est même pas sûr) pouvoir forcer Windows à ouvrir un exe avec ton programme, qui devra lancer l'exe avec CreateProcess() au lieu de ShellExecute(). Mais dans ce cas, tu ne pourras pas empêcher de lancer l'exécutable avec CreateProcess()...


    Bref, pour protéger complètement un exécutable, il faudrait le crypter, et modifier simplement le raccourci pour qu'il lance ton programme "proctecteur" avec le nom de l'exe en paramètre : Ton programme décrypterait l'exécutable dans un dossier temporaire et le lancerait...
    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.

  9. #9
    Membre du Club
    Profil pro
    Ingénieur Développement
    Inscrit en
    Juin 2006
    Messages
    140
    Détails du profil
    Informations personnelles :
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur Développement

    Informations forums :
    Inscription : Juin 2006
    Messages : 140
    Points : 58
    Points
    58
    Par défaut
    Salut
    j'ai un peu compris ce que tu voulais dire
    mais je ne sais pas par ou commencer
    comment on fait pour intercepter le clique sur le racourci ?
    est ce qu'il faut écrire un autre programme? ou est ce qu'il y a une manipulation à faire? je suis en train d'essayer mon programme sur le solitaire...

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

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 369
    Points : 41 519
    Points
    41 519
    Par défaut
    Tu peux intercepter le clic de plusieurs façons:
    • La plus simple : tu modifies toi-même, à la main, le raccourci. Bien sûr, quelqu'un qui connait le chemin de l'exe pourra le lancer
    • Autre méthode : Tu trifouilles les associations de fichiers pour faire ouvrir les raccourcis par ton programme au lieu de rundll32 : C'est gore, mais puissant : Tous les raccourcis passent maintenant par ton programme. Mais il faut que le programme soit capable de retrouver la cible du raccourci (qui peut être n'importe quoi) pour la lancer.
    • Ou encore : Comme précédemment, mais tu changes le chemin des EXE en plus. Je ne suis même pas sûr que ça marche, et tu pourrais bien avoir à réinstaller ton Windows si ça foire
    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.

  11. #11
    Membre du Club
    Profil pro
    Ingénieur Développement
    Inscrit en
    Juin 2006
    Messages
    140
    Détails du profil
    Informations personnelles :
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur Développement

    Informations forums :
    Inscription : Juin 2006
    Messages : 140
    Points : 58
    Points
    58
    Par défaut
    Citation Envoyé par Médinoc
    Tu peux intercepter le clic de plusieurs façons:
    • La plus simple : tu modifies toi-même, à la main, le raccourci. Bien sûr, quelqu'un qui connait le chemin de l'exe pourra le lancer
    • Autre méthode : Tu trifouilles les associations de fichiers pour faire ouvrir les raccourcis par ton programme au lieu de rundll32 : C'est gore, mais puissant : Tous les raccourcis passent maintenant par ton programme. Mais il faut que le programme soit capable de retrouver la cible du raccourci (qui peut être n'importe quoi) pour la lancer.
    • Ou encore : Comme précédemment, mais tu changes le chemin des EXE en plus. Je ne suis même pas sûr que ça marche, et tu pourrais bien avoir à réinstaller ton Windows si ça foire
    je crois que je vais prendre la première solution et je vais cacher le fichier pour avoir une petite sécurité.
    merci pour ton aide.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 2
    Dernier message: 27/08/2009, 09h08
  2. Réponses: 0
    Dernier message: 17/05/2008, 09h06
  3. Ouvrir un document avec un programme spécifié
    Par revline dans le forum VB 6 et antérieur
    Réponses: 4
    Dernier message: 29/08/2007, 21h11
  4. Réponses: 1
    Dernier message: 23/07/2007, 11h00
  5. Ouvrir un fichier avec son programme
    Par aliwassem dans le forum Delphi
    Réponses: 1
    Dernier message: 21/10/2006, 21h26

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