Re: lancer un exe au demarrage
Publié : mer. 22/sept./2010 11:44
tu n'aurais pas un antivirus ou autre spybot qui "blinde" ta base de registre par hasard ?
Code : Tout sélectionner
Procedure.b StartWithWindows(ARS_ProgPath.s, state.b)
; Original code by Joakim Christiansen / StartWithWindows(state.b)
; Modify by Ar-S / 2012 - Add filepath to the proce and some checks
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.s Value, String, Chemin
Protected CurKey.l
Protected.b Succes
Chemin = ARS_ProgPath
String.s = GetFilePart(Chemin)
Value.s = RemoveString(String, "."+GetExtensionPart(String))
; Créer la clef
If state = 1
; Avant de créer la clé, on vérifie que le prog existe
If FileSize(Chemin) > 0
Chemin = Chr(34) + Chemin + Chr(34)
RegCreateKey_ (key,@Path,@CurKey)
RegSetValueEx_ (CurKey,@Value,0, #REG_SZ ,@Chemin, Len (Chemin))
RegCloseKey_ (CurKey)
Succes = 1
Else
Succes = 0
EndIf
; Suppression de clé
Else
RegOpenKey_ (key,@Path,@CurKey)
RegDeleteValue_ (CurKey,@Value)
RegCloseKey_ (CurKey)
Succes = 1
EndIf
ProcedureReturn Succes
EndProcedure
;- EXEMPLE
; Inscrire la clé
Debug StartWithWindows("E:\votre_prog.exe",1)
; Supprime la clé
Debug StartWithWindows("E:\votre_prog.exe",0)
; Dans les 2 cas, retourne 1 si succés ou 0 si erreur (ne peut intervenir que si le programme n'existe pas).
Tu parles de quel code ?Yrahen a écrit :Personnellement, ca marche chez moi, meme avec Avast.
PS:L'aurtohgrafe pik lé zieus.
Code : Tout sélectionner
C:\Users\VOTRENOM\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup
Je ne comprends pas ? Si tu parles des gens qui ont un ordi, pour en rencontrer tous les jours (c'est mon travail), je peux t'assurer que sans être ignare, la majorité des gens savent lancer un navigateur, leur suite bureautique si besoin et ça ne vol pas bien plus haut.J'en conviens, mais dois-je imaginer que tous les autres sont des ignares ?
Code : Tout sélectionner
Procedure.b StartWithWindows(Chemin.s, state.b)
; Original code by Joakim Christiansen / StartWithWindows(state.b)
; Modify by Ar-S / 2012 - Add filepath to the proce and some checks
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.s Value, String
Protected CurKey.l
Protected.b Succes
String.s = GetFilePart(Chemin)
Debug "String.s : " + String.s ;------- TEST
Value.s = RemoveString(String, "."+GetExtensionPart(String))
Debug "Value.s : " + Value.s ;------- TEST
; Créer la clef
If state = 1
; Avant de créer la clé, on vérifie que le prog existe
If FileSize(Chemin) > 0
Chemin = Chr(34) + Chemin + Chr(34)
Debug "Vérif Chemin : " + Chemin ;------- TEST
Longueur = Len (Chemin)
RegCreateKey_ (key,@Path,@CurKey)
RegSetValueEx_ (CurKey,@Value,0, #REG_SZ ,@Chemin, Longueur)
RegCloseKey_ (CurKey)
Succes = 1
Else
Succes = 0
EndIf
; Suppression de clé
Else
RegOpenKey_ (key,@Path,@CurKey)
RegDeleteValue_ (CurKey,@Value)
RegCloseKey_ (CurKey)
Succes = 1
EndIf
ProcedureReturn Succes
EndProcedure
;- EXEMPLE
; Inscrire la clé
Debug StartWithWindows("D:\_EXE\TicTacToe.exe",1)
; Supprime la clé
; Debug StartWithWindows("D:\_EXE\TicTacToe.exe",0)
; Dans les 2 cas, retourne 1 si succés ou 0 si erreur (ne peut intervenir que si le programme n'existe pas).
Code : Tout sélectionner
Declare.s specialfolder2(folderno)
#CSIDL_STARTUP=$07
demarrage$=SpecialFolder2(#CSIDL_STARTUP)+"\"
debug demarrage$
Procedure.s SpecialFolder2(folderno)
listptr=0
result$=Space(270)
SHGetSpecialFolderLocation_(0,folderno,@listptr)
SHGetPathFromIDList_(listptr,@result$)
ProcedureReturn Trim(result$)
EndProcedure
; Epb
Code : Tout sélectionner
http://www.purebasic.fr/english/viewtopic.php?f=12&t=56204&p=512775&hilit=REG_DWORD#p512775