Page 1 sur 3

lancer un exe au demarrage

Publié : mar. 21/sept./2010 17:20
par Parole De JOJO
comment faire pour ke mon programme se lance automatikement au demarage de l'ordi?
j'ai vu une fois une commande pour ca et je la trouve plus

Re: lancer un exe au demarrage

Publié : mar. 21/sept./2010 17:47
par Ar-S
Le plus simple est d'ajouter une clé au registre :

Pour ça voir ici et la clé pour le démarrage auto est :

Code : Tout sélectionner

"HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run"

Re: lancer un exe au demarrage

Publié : mar. 21/sept./2010 17:55
par Parole De JOJO
ouaiiiiiiiiiis
jai pas tout a fait piger lequel de ces codes je dois prendre, et comment y combiner la formule magik
si c'est pas trop complike tu pourrais peut etre me donner un petit exemple?
merci

Re: lancer un exe au demarrage

Publié : mar. 21/sept./2010 18:59
par Ar-S
Y'a la procédure complète dans le lien que je t'ai donné et Dobro a mis un exemple pour chaque, faut lire un peu hein.

Pour écrire :

Code : Tout sélectionner

; ecrire une chaine dans le registre
Procedure.l WriteRegKey(OpenKey.l,SubKey.s,keyset.s,KeyValue.s) ; ------------------------ WRITE KEY
        
         ; result.l=WriteRegKey(#HKEY_LOCAL_MACHINE,"SOFTWARE\Test Program Name","Test","TestValue")
        
        hKey.l=0
         If RegCreateKey_ (OpenKey,SubKey,@hKey)=0
                Result=1
                DataSize.l= len (KeyValue)
                 If RegSetValueEx_ (hKey,keyset,0, #REG_SZ ,@KeyValue,DataSize)=0
                        Result=2
                 EndIf
                 RegCloseKey_ (hKey)
         EndIf
         ProcedureReturn Result
         ;returns 0 if error / could not open or create SubKey
         ;returns 1 if error / could not write new value
         ;returns 2 if Success!!
        
EndProcedure 
Donc pour ton affaire, je t'ai donné la clé

Code : Tout sélectionner

"HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run"
Donc la commande WriteRegKey prendra cette forme :

Code : Tout sélectionner

; result.l=WriteRegKey(#HKEY_CURRENT_USER,"HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run","Nom_de_ton_logiciel","chemin_complet_de_ton_exe")
Je te laisse regarder la procédure complète au lien adéquate car si tu inscrits un truc dans le registre, il faudra bien un bouton ou un désinstalleur inclus qui "supprimera cette clé" selon le choix de l'utilisateur.

Dernière chose, gaffe au registre, ne te plate pas voir, fais en une sauvegarde avant de tatouiller dedans.

Re: lancer un exe au demarrage

Publié : mar. 21/sept./2010 19:45
par Parole De JOJO
merci

si jai bien compris je dois faire ca

Code : Tout sélectionner

Procedure.l WriteRegKey(OpenKey.l,SubKey.s,keyset.s,KeyValue.s) ; ------------------------ WRITE KEY
       
result.l=WriteRegKey(#HKEY_CURRENT_USER,"HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run","logiciel.exe","C:/Mes Exes/")       
        hKey.l=0
         If RegCreateKey_ (OpenKey,SubKey,@hKey)=0
                Result=1
                DataSize.l= Len (KeyValue)
                 If RegSetValueEx_ (hKey,keyset,0, #REG_SZ ,@KeyValue,DataSize)=0
                        Result=2
                 EndIf
                 RegCloseKey_ (hKey)
         EndIf
         ProcedureReturn Result
         ;returns 0 if error / could not open or create SubKey
         ;returns 1 if error / could not write new value
         ;returns 2 if Success!!
       
EndProcedure 

WriteRegKey()
mais que mettre dans les parentheses, ca jai pas capte

merci encore

Re: lancer un exe au demarrage

Publié : mar. 21/sept./2010 21:14
par Le Soldat Inconnu
Et bien, en l'écrivant comme ceci, c'est mieux, j'ai juste changer l'ordre

Code : Tout sélectionner

Procedure.l WriteRegKey(OpenKey.l,SubKey.s,keyset.s,KeyValue.s) ; ------------------------ WRITE KEY 
     
    hKey.l=0 
    If RegCreateKey_ (OpenKey,SubKey,@hKey)=0 
    Result=1 
    DataSize.l= Len (KeyValue) 
    If RegSetValueEx_ (hKey,keyset,0, #REG_SZ ,@KeyValue,DataSize)=0 
    Result=2 
    EndIf 
    RegCloseKey_ (hKey) 
    EndIf 
    ProcedureReturn Result 
    ;returns 0 if error / could not open or create SubKey 
    ;returns 1 if error / could not write new value 
    ;returns 2 if Success!! 
     
EndProcedure  

result.l=WriteRegKey(#HKEY_CURRENT_USER,"HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run","logiciel.exe","C:/Mes Exes/")    

Re: lancer un exe au demarrage

Publié : mar. 21/sept./2010 21:38
par nico
Je ne comprend pas, en lançant l'exemple j'ai 2 comme résultat mais rien ne s'ajoute dans la base de registre.

Re: lancer un exe au demarrage

Publié : mer. 22/sept./2010 9:44
par Backup
.............................

Re: lancer un exe au demarrage

Publié : mer. 22/sept./2010 10:38
par Parole De JOJO
je dois etre un imbecile mais ca ne me marche pas

Code : Tout sélectionner

Procedure   StartWithWindows(state.b)
         Protected key.l = #HKEY_CURRENT_USER ;or #HKEY_LOCAL_MACHINE pour tout les utilisateur de l'ordi
         Protected Path.s = "Software\Microsoft\Windows\CurrentVersion\Run" ;ou RunOnce pour le lancer qu'une fois
         Protected Value.s = "monprog.exe" ;mettre ici le nom de votre prg
         Protected String.s = Chr (34)+"C:\Mes Exes\monprog.exe"+ Chr (34) ;ici le chemin de votre prg
         Protected CurKey.l
         If state =1 ; creer la clef
                 RegCreateKey_ (key,@Path,@CurKey)
                 RegSetValueEx_ (CurKey,@Value,0, #REG_SZ ,@String, Len (String))
         Else ; efface la clef
                 RegOpenKey_ (key,@Path,@CurKey)
                 RegDeleteValue_ (CurKey,@Value)
         EndIf
         RegCloseKey_ (CurKey)
EndProcedure 
StartWithWindows(1)

Re: lancer un exe au demarrage

Publié : mer. 22/sept./2010 10:49
par Ar-S
Parole De JOJO a écrit :je dois etre un imbecile mais ca ne me marche pas

Code : Tout sélectionner

Procedure   StartWithWindows(state.b)
         Protected key.l = #HKEY_CURRENT_USER ;or #HKEY_LOCAL_MACHINE pour tout les utilisateur de l'ordi
         Protected Path.s = "Software\Microsoft\Windows\CurrentVersion\Run" ;ou RunOnce pour le lancer qu'une fois
         Protected Value.s = "monprog.exe" ;mettre ici le nom de votre prg
         Protected String.s = Chr (34)+"C:\Mes Exes\"+ Chr (34) ;ici le chemin de votre prg
         Protected CurKey.l
         If state =1 ; creer la clef
                 RegCreateKey_ (key,@Path,@CurKey)
                 RegSetValueEx_ (CurKey,@Value,0, #REG_SZ ,@String, Len (String))
         Else ; efface la clef
                 RegOpenKey_ (key,@Path,@CurKey)
                 RegDeleteValue_ (CurKey,@Value)
         EndIf
         RegCloseKey_ (CurKey)
EndProcedure 
StartWithWindows(1)
Les chr(34) de la partie Protected String.s = ne sont utiles que si l'exe à besoin d'une commande spéciale après son nom (genre "c:\monprog.exe" \hide sinon elles ne sont pas nécessaire.

Sinon JOJO, ce code marche. Ouvre Regedit et vas à la clé concernée, ensuite lance la procédure puis sous regedit fait F5 pour rafraichir la liste, la nouvelle clé a du s'ajouter. Ensuite relance ton programme avec StartWithWindows(0)
La clé sera supprimée.

Re: lancer un exe au demarrage

Publié : mer. 22/sept./2010 10:52
par Backup
....................

Re: lancer un exe au demarrage

Publié : mer. 22/sept./2010 10:54
par Parole De JOJO

Code : Tout sélectionner

Procedure   StartWithWindows(state.b)
         Protected key.l = #HKEY_CURRENT_USER ;or #HKEY_LOCAL_MACHINE pour tout les utilisateur de l'ordi
         Protected Path.s = "Software\Microsoft\Windows\CurrentVersion\Run" ;ou RunOnce pour le lancer qu'une fois
         Protected Value.s = "monprog.exe" ;mettre ici le nom de votre prg
Protected String.s = "C:\Mes Exes\"
         Protected CurKey.l
         If state =1 ; creer la clef
                 RegCreateKey_ (key,@Path,@CurKey)
                 RegSetValueEx_ (CurKey,@Value,0, #REG_SZ ,@String, Len (String))
         Else ; efface la clef
                 RegOpenKey_ (key,@Path,@CurKey)
                 RegDeleteValue_ (CurKey,@Value)
         EndIf
         RegCloseKey_ (CurKey)
EndProcedure 
StartWithWindows(1)
desole mais ca ne marche pas
je suis alle a regedit, rien n'a change
tu as essaye?

Re: lancer un exe au demarrage

Publié : mer. 22/sept./2010 11:00
par Backup
.......................

Re: lancer un exe au demarrage

Publié : mer. 22/sept./2010 11:10
par Parole De JOJO
je sais pas cest koi ton GmailEnhancer et pourkoi il finit pas par .exe
moi j'ai utilise ce code, lettre par lettre, et ca n'a rien du tout bouge sur le regedit

Code : Tout sélectionner

Procedure   StartWithWindows(state.b)
         Protected key.l = #HKEY_CURRENT_USER ;or #HKEY_LOCAL_MACHINE pour tout les utilisateur de l'ordi
         Protected Path.s = "Software\Microsoft\Windows\CurrentVersion\Run" ;ou RunOnce pour le lancer qu'une fois
         Protected Value.s = "monprog.exe" ;mettre ici le nom de votre prg
Protected String.s = "C:\Mes Exes\"
         Protected CurKey.l
         If state =1 ; creer la clef
                 RegCreateKey_ (key,@Path,@CurKey)
                 RegSetValueEx_ (CurKey,@Value,0, #REG_SZ ,@String, Len (String))
         Else ; efface la clef
                 RegOpenKey_ (key,@Path,@CurKey)
                 RegDeleteValue_ (CurKey,@Value)
         EndIf
         RegCloseKey_ (CurKey)
EndProcedure
StartWithWindows(1)
essaye de le copier et le runner et dis moi si ca marche chez twa

merci

Re: lancer un exe au demarrage

Publié : mer. 22/sept./2010 11:19
par Backup
.................