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

Windows Discussion :

Clé Registre et copie du programme par lui même


Sujet :

Windows

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 5
    Points : 4
    Points
    4
    Par défaut Clé Registre et copie du programme par lui même
    Bonjour mes amis,
    tout d'abord je me présente, je suis un étudiant en école d'informatique et je suis très content d'avoir trouvé ce forum pleins de ressources.
    Après maintes recherche, je n'ai pas trouvé deux choses qui manquent pour mon projet perso.

    Voilà, en fait j'ai bien trouver qu'on pouvait ecrire une clé pour démarrer notre programme (en background) mais j'ai vu qu'il etait impossible dans WinXP avec HKEY_LOCAL_MACHINE , donc il faudrais la mettre dans HKEY_CURRENT_USER, mais celle ci ne sera effective qu'a l'ouverture d'une session je pense.

    mon deuxième objectif est d'avoir mon programme qui se copie de lui même dans le system32, c'est a dire qu'un user ne dois juste que cliquer dessus deux fois, le programme se copie de lui même dans system32 , et ainsi on peu le controler via la console de windows.

    mais je ne sais pas du tout comment faire celà :/
    si une personne charitable pourrais me donner des pistes , ca serait sympa ^^


    Merci pour tout

  2. #2
    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
    Déjà, pour avoir le droit d'écrire dans system32, il faut être admin.

    Ensuite, pour ajouter un programme "au démarrage", deux cas:
    - soit il faut qu'il se lance AVANT la connexion d'un utilisateur (bref, pas besoin qu'il se connecte) et pour cela, il faut qu'il soit créé et lancé en tant que service, sur ordre de l'administrateur.
    - soit il démarre lorsque l'utilisateur se connecte, et là il peut être lançé de diverses façons, certaines globales à la machine (HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run\, C:\Documents and Settings\All Users\Menu Démarrer\Programmes\Démarrage, etc), d'autres spécifiques à l'utilisateur (HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run\, C:\Documents and Settings\(nom de l'utilisateur)\Menu Démarrer\Programmes\Démarrage, etc). Naturellement, pour toucher aux réglages "machine", il faut être administrateur.


    En tout cas, il faut savoir que quelque soit l'entrée de démarrage (CURRENT_USER ou LOCAL_MACHINE), le programme ne se lancera qu'à l'ouverture de session: Seuls les services peuvent se lancer avant.
    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.

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 5
    Points : 4
    Points
    4
    Par défaut
    Merci pour ces explications, je ferais donc la mise en situation suivante:

    L'utilisateur ouvre sa session Windows, il est Administrateur de sa Machine

    -il clique deux fois sur le programme

    1) Celui ci se deplae dans le %sysdir%
    2) il ajoute une entrée dans la base de registre pour être démarrer par exemple a l'ouverture de session ( un service démarrerait avant mais ca ne servirais pas a grand chose dans le cas de mon projet)

    Maintenant la partie technique :

    1) pour qu'il se deplace, je n'ai pas trop d'idée , mais je pense qu'il devrait se copier puis supprimer ensuite le programme d'origine

    2) Pour ajouter des clés j'ai trouver ce code:



    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    HKEY hKey;
    char regdata[] = "/windows/system32/program.exe";
    
    RegCreateKey(HKEY_CURRENT_USER, "Software\\Microsoft\\Windows\\CurrentVersion\\Run\\keyname", &hKey);
    RegSetValue(HKEY_CURRENT_USER, "Software\\Microsoft\\Windows\\CurrentVersion\\Run\\keyname", REG_SZ, regdata, 27);
    RegCloseKey(hKey);
    Ce code m'a l'air bon, mais une chose me turlipine
    si on déclare
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    char regdata[] = "/windows/system32/program.exe";
    ainsi, imaginons que le systeme soit sur une partition F:, ca ne marche plus.

    J'ai vu une fonction dans msdn : GetSystemDirectory()

    Est-elle utilisable pour définir l'endroit ?


    Merci pour vos réponses

  4. #4
    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
    1°) Je conseillerais de le copier tout simplement, car un programme ne peut se supprimer lui-même tant qu'il est en cours d'exécution (ou bien, tu ordonnes au programme destination de supprimer le programme d'origine, mais bon...

    2°) Oui, GetSystemDirectory() peut être utilisé, il retourne le chemin complet.
    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.

  5. #5
    Candidat au Club
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 5
    Points : 4
    Points
    4
    Par défaut
    hmmmm je vois, merci beaucoup ^^, tu pourrais me donner une exemple de foncton pour que le programme se copie lui meme ? stp ^^

  6. #6
    Expert éminent sénior

    Homme Profil pro
    pdg
    Inscrit en
    Juin 2003
    Messages
    5 751
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : pdg

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 751
    Points : 10 667
    Points
    10 667
    Billets dans le blog
    3
    Par défaut
    Toucher à system32 c'est pas une bonne approche. C'est à cause de ce genre de pratiques qu'on doit bosser en admin et que Windows est pollué par les virus. Mais bon...
    Tu peux copier ton fichier avec CopyFile.

Discussions similaires

  1. [WD15] Remplacer caractère par lui même mais en gras
    Par Jeje9 dans le forum WinDev
    Réponses: 2
    Dernier message: 05/07/2012, 15h52
  2. Réponses: 23
    Dernier message: 23/10/2011, 08h20
  3. [AC-2007] Désactiver un bouton dans un form par lui même ?
    Par Dixies dans le forum IHM
    Réponses: 4
    Dernier message: 16/02/2011, 19h34
  4. Remplacer un mot par lui-même ?
    Par tintin72 dans le forum Word
    Réponses: 10
    Dernier message: 14/10/2008, 14h36

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