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

Langage Delphi Discussion :

[TRegistry] Problème de lancement au démarrage


Sujet :

Langage Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre très actif
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Juillet 2004
    Messages
    146
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2004
    Messages : 146
    Par défaut [TRegistry] Problème de lancement au démarrage
    Bonjour a tous,
    j'ai un encore un petit probleme, mais cette fois avec le registre.

    voici le code que j'execute pour lancer mon programme au demarrage :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Reg:=TRegistry.Create;
    Reg.RootKey:=HKEY_LOCAL_MACHINE;
    if Reg.OpenKey('\Software\Microsoft\Windows\CurrentVersion\Run',False) then
        Reg.WriteString('hlgchk',ExtractFilePath(Application.ExeName)+'Setting\hlgchk.exe');
    Reg.CloseKey;
    Reg.RootKey:=HKEY_CURRENT_USER;
    if Reg.OpenKey('\Software\Microsoft\Windows\CurrentVersion\Run',False) then
        Reg.WriteString('hlgchk',ExtractFilePath(Application.ExeName)+'Setting\hlgchk.exe');
    Reg.CloseKey;
    et dans la même procedure, voici le code qui supprime les clef de registre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Reg.RootKey:=HKEY_LOCAL_MACHINE;
    if Reg.OpenKey('\Software\Microsoft\Windows\CurrentVersion\Run',False) then
        if Reg.ValueExists('hlgchk') then Reg.DeleteValue('hlgchk');
    Reg.CloseKey;
    Reg.RootKey:=HKEY_CURRENT_USER;
    if Reg.OpenKey('\Software\Microsoft\Windows\CurrentVersion\Run',False) then
        if Reg.ValueExists('hlgchk') then Reg.DeleteValue('hlgchk');
    Reg.CloseKey;
    Comme vous pouvez le voir j'ecrit 2 fois la meme valeur dans le registre, pourquoi ? he bien pour la simple et bonne raison que dans HKLM cela ne fonctionnait pas, du moins le programme ne demarrer pas au demarrage, alors je me suis dit qu'il fallait peut etre mettre la meme clef dans HKCU, resultat mon programme ne demarre toujour pas au demarrage du PC !

    Il faut noter que les clef sont bien présente dans le registre, quand je les ecrit, je verifie par la suite dans le registre, et elle sont bien présente, de même qu'au démarrage de Windows les clefs sont encore présente, mais mon programme ne ce lance pas. Mon OS est Win2000 professionnel, j'ai tout les droit administrateur, en faite je suis le seul utilisateur de ce PC.

    Alors la question que je me pose, est pourquoi sa fait ça !
    Merci pour vos reponse.

  2. #2
    Membre très actif
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Juillet 2004
    Messages
    146
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2004
    Messages : 146
    Par défaut Re: [TRegistry] Mon programme ne ce lance pas au demarrage !
    Bon,
    Ben je vois que depuis hier soir, personne n'a eu d'idée !

    Alors je me permet de relancer le post, qui sait aujourd'hui j'aurais peut etre plus de chance.

  3. #3
    Membre extrêmement actif
    Avatar de skywaukers
    Homme Profil pro
    Directeur de projet
    Inscrit en
    Juin 2005
    Messages
    1 219
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations professionnelles :
    Activité : Directeur de projet
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2005
    Messages : 1 219
    Par défaut
    bonjour,

    questions bêtes :
    - tu as essayé ton programme en le lançant manuellement, hors delphi ?
    - Tu es sur aussi du chemin d'accès (je pense à Setting notament) ?

    @++
    Dany

  4. #4
    Membre très actif
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Juillet 2004
    Messages
    146
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2004
    Messages : 146
    Par défaut
    questions bêtes :
    - tu as essayé ton programme en le lançant manuellement, hors delphi ?
    - Tu es sur aussi du chemin d'accès (je pense à Setting notament) ?
    Je ne me serais jamais permis de poser une telle question, si je n'avais pas essayer mon programme.

    - Quand au chemin d'acces, il existe belle et bien, et dans la base de registre il est trés bien référencer, donc de ce côté la, il n'y a aucun probleme.
    - Les droit d'acces au dossier sont pour tout les utitlisateur, je tient a rappeller aussi que je suis le seul utilisateur de ce PC, et par definition l'administrateur de celui-ci.

    Mon programme est compiler, et fonctionne sans aucun bug, mise a part celui-ci, sinon il s'execute normalement, le seul hic, est que le programme ne ce lancera pas au demarrage de Windows.
    Le chemin d'acces est sur ! Maintenant il est vrai que je n'est pas essayer, avec le format 8.3 (dos), mais bon je n'en voie pas l'utilité étant donnée que les autres programme demarrant automatiquement avec windows ne l'utilise pas, (rappel Win2000 Pro).

    J'ai remarquer une chose, je ne sais pas si cela joue quelque chose, mais on peut toutjour faire la remarque :
    Dans les différent programme qui se lance au demarrage de Windows, la valeur pour 2 d'entre eux, est entre guillemet par exemple :
    "C:\Program Files\..", alors que toutes les autres valeurs, dont la mienne, ne sont pas entre guillemets par exemple : C:\Program Files\.., mais bon cela n'empêche pas les autre programme de démarrer correctement au démarrage de Windows, car je tient a signaler que j'ai plus d'une application qui démarre avec Windows, et elle s'execute toutes sans aucun probléme.

    Alors si c'est une question idiote ? he bien je ne le crois pas, parcequ'a mon avis il y a quelque chose qui cloche dans tout ça.

    Pourquoi tout mes autre programme s'execute normalement au démarrage, alors que mon programme ne s'execute pas, y'aurais t'il un autre parametre caché dans Windows pour le démarrage automatique ?

  5. #5
    Membre extrêmement actif
    Avatar de skywaukers
    Homme Profil pro
    Directeur de projet
    Inscrit en
    Juin 2005
    Messages
    1 219
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations professionnelles :
    Activité : Directeur de projet
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2005
    Messages : 1 219
    Par défaut
    bonjour,

    désolé, j'ai jamais voulu dire que ta question était idiote. Seulement des fois on est parti dans une idée, on bute dessus alors que la solution est tout juste à côté.
    C'est surement un problème d'environnement au moment où ton programme veut se lancer.

    @++
    Dany

  6. #6
    Membre Expert

    Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2002
    Messages
    1 296
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Août 2002
    Messages : 1 296
    Par défaut
    Il vaut mieux qu'il y ait les guillements pour les chemin avec un espace. J'ai eu des problèmes en ne les mettant pas.

  7. #7
    Membre extrêmement actif
    Avatar de skywaukers
    Homme Profil pro
    Directeur de projet
    Inscrit en
    Juin 2005
    Messages
    1 219
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations professionnelles :
    Activité : Directeur de projet
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2005
    Messages : 1 219
    Par défaut
    ben c'est ce que j'ai pensé au premier abord, mais j'ai regardé chez moi et j'ai des exemples qui fonctionnent avec les deux syntaxes. D'ailleurs pour l'anecdote, j'ai deux clés concernant microsoft works avec un chemin dans program files pour lesquelles il n'y a pas de guillemets.

    @++
    Dany

  8. #8
    Membre habitué
    Profil pro
    Resp
    Inscrit en
    Janvier 2005
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Resp

    Informations forums :
    Inscription : Janvier 2005
    Messages : 13
    Par défaut
    tu as saisi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ExtractFilePath(Application.ExeName)+'Setting\hlgchk.exe'
    ca ne serait pas plutot :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ExtractFilePath(Application.ExeName)+'hlgchk.exe'
    (a condition que ce soit hlgchk.exe l'application qui inscrit dans les registres bien evidement :p )

  9. #9
    Membre éclairé

    Inscrit en
    Juillet 2005
    Messages
    48
    Détails du profil
    Informations forums :
    Inscription : Juillet 2005
    Messages : 48
    Par défaut
    Qu'est ce qu'il y a de marqué dans la base de registres ?

  10. #10
    Membre très actif
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Juillet 2004
    Messages
    146
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2004
    Messages : 146
    Par défaut
    (a condition que ce soit hlgchk.exe l'application qui inscrit dans les registres bien evidement :p )
    Voici le fonctionnement abrége de mon application :
    Dans mon application principale, quand l'on clique sur l'option "Activer la surveillance", le module externe "hlgchk.exe" se charge en mémmoire, et se place dans le SysTray, suite a cela un retour d'info me disant que "hlgchk.exe" est chargé, me permet d'ecrire les valeur dans la base de registre, a partir de mon application principale bien entendus.
    Le module "hlgchk.exe" doit donc pouvoir ce recharger a chaque redemarrage de Windows, ce module est placer dans un sous repertoire de mon application principale, d'ou la raison du rajout de la chaine "Setting\hlgchk.exe" a la suite de "Application.ExeName".

    Qu'est ce qu'il y a de marqué dans la base de registres ?
    Dans la base de registre a :
    HKCU\Software\Microsoft\Windows\CurrentVersion\Run
    name______Value
    hlgchk______C:\Documents and Settings\glt0732\Bureau\Scanfile\Setting\hlgchk.exe

    HKLM\Software\Microsoft\Windows\CurrentVersion\Run
    name______Value
    hlgchk______C:\Documents and Settings\glt0732\Bureau\Scanfile\Setting\hlgchk.exe

    Il est a noté que suite a un reboot de la machine, j'ouvre aussitôt le registre pour regarder si les clefs sont encore présente, et elle sont présente, ce que je ne comprend pas c'est que tout les logiciel present dans la clef "Run" ce lance sans probleme, mais pas le mien !

    nota :
    Regedit nous montre une copie de la base de registre, la base de registre active étant inexploitable par regedit, étant donnée que celle-ci est utiliser par Windows en permanence. Serait il possible qu'il y est discordance entre la version statique et dynamique, aprés un redemarrage bien entendus ?

  11. #11
    Membre éclairé

    Inscrit en
    Juillet 2005
    Messages
    48
    Détails du profil
    Informations forums :
    Inscription : Juillet 2005
    Messages : 48
    Par défaut
    est - ce que ton appli est tributaire d'un moteur de base ou d'une application tierce ?

    Et je présume qu'a cet endroit, "C:\Documents and Settings\glt0732\Bureau\Scanfile\Setting\hlgchk.exe " il y a ton appli.

    Je mettrais un log sur un fichier texte, juste histoire de savoir si ton appli a été lancé.

    rv

  12. #12
    Membre très actif
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Juillet 2004
    Messages
    146
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2004
    Messages : 146
    Par défaut
    Citation Envoyé par rv66
    est - ce que ton appli est tributaire d'un moteur de base ou d'une application tierce ?
    Non Pas du tout, Mon application est entiérement autonome, par contre j'utilise des composant de la JVCL, 1 ProgressBar et 1 Composant pour parcourir l'arborescence a la recherche d'un repertoire, un peu comme un OpenDialog mais pour repertoire seulement, mais je doute que cela viennent de la !
    Une autre chose, je ne pense pas que cela soit important, mais bon c'est ont jamais ! lors de la compilation de mon application, le debbugueur me signale que "l'unité ShellCtrls est propre a une PlateForme", ce qui me parait logique, je pense que cela veut dire que ce ne sera comptatibble qu'avec Windows.

    Citation Envoyé par rv66
    Et je présume qu'a cet endroit, "C:\Documents and Settings\glt0732\Bureau\Scanfile\Setting\hlgchk.exe " il y a ton appli.
    Tout a fait ! du moins l'application secondaire, celle qui se charge en memmoire, et qui est appeller par l'application principale nommé "SCANFILE".

    Citation Envoyé par rv66
    Je mettrais un log sur un fichier texte, juste histoire de savoir si ton appli a été lancé.
    Je suis complétement d'accord, par contre j'ai regarder plusieur fois au démarrage du PC avec un logiciel nommé "Process Explorer" si il y avait une instance de mon application, et je n'est rien vus. Pour le "log" je le ferais bien, mais le probléme et que j'apprend Delphi, et que je ne connait pas toutes les ficéles, donc si je pourrait avoir la description de l'opération pour generer un "log", cela serait super sympa, Merci !

  13. #13
    Membre averti
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 23
    Par défaut
    une piste de réflexion: si tu supprimes les deux entrées pour hlgchk dans la base de registres, et que tu foutes un raccourci de ce module dans le menu démarrer->programmes->démarrage, est-ce que ton module se lance au démarrage ?

    si oui : c bien un problème lié à la base de registres
    si non : c'est ton prog hlgchk.exe qu'a un problème

  14. #14
    Rédacteur


    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    7 171
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 7 171
    Billets dans le blog
    1
    Par défaut
    Salut,
    essaie de placer ton soft à exécuter dans c:\temp par exemple et exécute ce fichier de registry

    Run.reg:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    Windows Registry Editor Version 5.00
     
    [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run]
    "hlgchk"="C:\\Temp\\hlgchk.exe"
    ou
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    Windows Registry Editor Version 5.00
     
    [HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Run]
    "hlgchk"="C:\\Temp\\hlgchk.exe"
    Est-ce que cela fonctionne ?

  15. #15
    Membre averti
    Inscrit en
    Janvier 2005
    Messages
    18
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Janvier 2005
    Messages : 18
    Par défaut
    Puisque même en l'ajoutant dans les Run dans la base de registre il ne se lance pas au démarrage du PC, une solution simple et efficace dans ton cas serait de créer un raccourci vers ton application, et le deplacer dans le dossier C:/Documents and Settings/Nom_Utilisateur/Menu Démarrer/ si tu as WinXP en Français.

    Après avec delphi tu peux récupérer le nom d'utilisateur et la langue je suppose donc ça doit pas être un problème pour trouver le bon chemin.

    Je ne sais pas si ça te conviendras mais tout les raccourcis de programmes présent dans ce dossier sont par défaut lancé au démarrage de la session windows.

  16. #16
    Membre extrêmement actif
    Avatar de skywaukers
    Homme Profil pro
    Directeur de projet
    Inscrit en
    Juin 2005
    Messages
    1 219
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations professionnelles :
    Activité : Directeur de projet
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2005
    Messages : 1 219
    Par défaut
    Citation Envoyé par TOTO32
    Je suis complétement d'accord, par contre j'ai regarder plusieur fois au démarrage du PC avec un logiciel nommé "Process Explorer" si il y avait une instance de mon application, et je n'est rien vus. Pour le "log" je le ferais bien, mais le probléme et que j'apprend Delphi, et que je ne connait pas toutes les ficéles, donc si je pourrait avoir la description de l'opération pour generer un "log", cela serait super sympa, Merci !
    tu le fais dans un simple fichier txt ton log ex :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    procedure Log( TextLog : string);
    var 
      F : TextFile;
    begin
      assignfile( F, 'Log.txt');
      if existefile( 'Log.txt') then
        append( F)
      else
        rewrite( F);
      writeln( F, TextLog);
      closeFile( F);
    end;
    voilà écrit à la volée, pas testé, mais ça doit pas être très loin.

    @++
    Dany

  17. #17
    Membre très actif
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Juillet 2004
    Messages
    146
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2004
    Messages : 146
    Par défaut
    Merci a rv66, a darinze, a Laurent Dardenne, a Flaie, et a Skywaukers !
    Je vais regarder tout ça ce soir, car je suis au taff !

    Pour la suggestion de mettre un raccourcis dans le menu demarrer, j'y avais deja penser, mais j'aimerais surtout regler le probleme que j'ai avec mon registre, parceque si ça me fait ça pour la clef "Run", il y a de grande chance que cela se reproduise avec d'autre clef, alors si c'est pour faire une application avec que des fichiers Ini, je pense qu'au niveau des ressource cela ne sera pas l'ideale.

  18. #18
    Membre très actif
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Juillet 2004
    Messages
    146
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2004
    Messages : 146
    Par défaut
    Alors avant tout, merci a tous !

    Raccourcis Démarrer :
    Si je créer un raccourcis, et que je le mets dans le menu démarrer, mon application demarre a chaque démarrage de Windows, en clair ça fonctionne nickel !

    Exportation de fichier "*.Reg" :
    Les exportation de fichier "*.Reg", n'ont rien changé je peut donc en deduire que Delphi y est pour rien du tout !

    Changement de repertoire :
    j'ai changer le repertoire de place sous les conseil de Laurent Dardenne, et bien surprise, tout fonctionne !
    L'ancien repertoire nommé "C:\Documents and Settings\glt0732\Bureau\ScanFile\Setting" était en faite situé sur mon bureau, j'ai mis le repertoire de "SCANFILE" a la racine du lecteur "C:", ce qui a donnée cela "C:\ScanFile\Setting".

    J'ai finis par comprendre que l'on avait pas le droit d'executées des applications au démarrage de Windows a partir du bureau, du moins je n'est tester que le bureau, peut être même que c'est carément tout le dossier "Documents and Settings", aller savoir !

    Sur ce j'en deduis que c'est une particularité de Windows 2000 Pro, ou un SP, enfin je peut vous dire que ce n'est pas mon antivirus, étant donnée que je l'avais complétement désactivé pour faire les testes, alors si quelqu'un est au courant de ce comportement, j'aimerais bien avoir quelque explication ?!

    Alors attention quand vous executer des application en teste sur votre bureau, a moins que cela ne soit un Bug de mon Windows 2000 Pro.

    Citation Envoyé par TOTO32
    Pourquoi tout mes autre programme s'execute normalement au démarrage, alors que mon programme ne s'execute pas, y'aurais t'il un autre parametre caché dans Windows pour le démarrage automatique ?
    Pour la reponse a ma question je dirait, OUI 8)

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

Discussions similaires

  1. Problème de lancement de check-disk à chaque démarrage ?
    Par messahel dans le forum Windows XP
    Réponses: 6
    Dernier message: 30/08/2010, 13h06
  2. Réponses: 25
    Dernier message: 18/12/2007, 19h50
  3. [Plugin] Problème de lancement
    Par relivio dans le forum Eclipse Platform
    Réponses: 1
    Dernier message: 03/08/2004, 14h34
  4. [Kylix] Problème de lancement
    Par jaguarwan dans le forum EDI
    Réponses: 1
    Dernier message: 21/02/2004, 22h40
  5. [Install] Problème de lancement sous debian sid
    Par SoaR245 dans le forum Eclipse Java
    Réponses: 1
    Dernier message: 18/02/2004, 10h01

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