lancer un exe au demarrage

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
Avatar de l’utilisateur
Ar-S
Messages : 9540
Inscription : dim. 09/oct./2005 16:51
Contact :

Re: lancer un exe au demarrage

Message par Ar-S »

tu n'aurais pas un antivirus ou autre spybot qui "blinde" ta base de registre par hasard ?
~~~~Règles du forum ~~~~
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
nico
Messages : 3702
Inscription : ven. 13/févr./2004 0:57

Re: lancer un exe au demarrage

Message par nico »

Pour moi, le dernier code de Dobro fonctionne.
Avatar de l’utilisateur
Ar-S
Messages : 9540
Inscription : dim. 09/oct./2005 16:51
Contact :

Re: lancer un exe au demarrage

Message par Ar-S »

Je déterre mais ça pourra intéresser du monde.
J'ai modifié la procédure en incluant le chemin de l'exe lors du lancement de la commande. J'ai aussi ajouté une vérification de l'existence du programme à lancer avec l'inscription dans le registre.

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).

~~~~Règles du forum ~~~~
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
Yrahen
Messages : 51
Inscription : sam. 01/sept./2012 4:14

Re: lancer un exe au demarrage

Message par Yrahen »

Personnellement, ca marche chez moi, meme avec Avast.
PS:L'aurtohgrafe pik lé zieus.
"L'imagination est plus importante que la connaissance."
Avatar de l’utilisateur
Ar-S
Messages : 9540
Inscription : dim. 09/oct./2005 16:51
Contact :

Re: lancer un exe au demarrage

Message par Ar-S »

Yrahen a écrit :Personnellement, ca marche chez moi, meme avec Avast.
PS:L'aurtohgrafe pik lé zieus.
Tu parles de quel code ?
~~~~Règles du forum ~~~~
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
Avatar de l’utilisateur
Micoute
Messages : 2584
Inscription : dim. 02/oct./2011 16:17
Localisation : 35520 La Mézière

Re: lancer un exe au demarrage

Message par Micoute »

Pour lancer un programme avec Windows 7, il suffit de le mettre dans le répertoire Démarrage, c'est tout !
Microsoft Windows 10 Famille 64 bits : Carte mère : ASRock 970 Extreme3 R2.0 : Carte Graphique NVIDIA GeForce RTX 3080 : Processeur AMD FX 6300 6 cœurs 12 threads 3,50 GHz PB 6.20 LTS (x64)
Un homme doit être poli, mais il doit aussi être libre !
Avatar de l’utilisateur
Ar-S
Messages : 9540
Inscription : dim. 09/oct./2005 16:51
Contact :

Re: lancer un exe au demarrage

Message par Ar-S »

Micoute, si tu proposes un logiciel censé se lancer au démarrage mais que l'utilisateur voit :
" Pour que ce logiciel se lance au démarrage, merci de créer un raccourcis de celui ci et de le copier dans le menu demarrer/ demarrage ou à cet endroit

Code : Tout sélectionner

C:\Users\VOTRENOM\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup
C'est un peu la loose non ? :mrgreen:
~~~~Règles du forum ~~~~
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
Avatar de l’utilisateur
Micoute
Messages : 2584
Inscription : dim. 02/oct./2011 16:17
Localisation : 35520 La Mézière

Re: lancer un exe au demarrage

Message par Micoute »

J'en conviens, mais dois-je imaginer que tous les autres sont des ignares ?
Microsoft Windows 10 Famille 64 bits : Carte mère : ASRock 970 Extreme3 R2.0 : Carte Graphique NVIDIA GeForce RTX 3080 : Processeur AMD FX 6300 6 cœurs 12 threads 3,50 GHz PB 6.20 LTS (x64)
Un homme doit être poli, mais il doit aussi être libre !
Avatar de l’utilisateur
Ar-S
Messages : 9540
Inscription : dim. 09/oct./2005 16:51
Contact :

Re: lancer un exe au demarrage

Message par Ar-S »

J'en conviens, mais dois-je imaginer que tous les autres sont des ignares ?
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.

En tout cas le code posté ci dessus fonctionne, c'est le principale.
~~~~Règles du forum ~~~~
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
Avatar de l’utilisateur
Micoute
Messages : 2584
Inscription : dim. 02/oct./2011 16:17
Localisation : 35520 La Mézière

Re: lancer un exe au demarrage

Message par Micoute »

Touché...coulé ! Tu as utilisé les bons arguments.
Microsoft Windows 10 Famille 64 bits : Carte mère : ASRock 970 Extreme3 R2.0 : Carte Graphique NVIDIA GeForce RTX 3080 : Processeur AMD FX 6300 6 cœurs 12 threads 3,50 GHz PB 6.20 LTS (x64)
Un homme doit être poli, mais il doit aussi être libre !
Avatar de l’utilisateur
Ar-S
Messages : 9540
Inscription : dim. 09/oct./2005 16:51
Contact :

Re: lancer un exe au demarrage

Message par Ar-S »

Je déterre ce sujet car je m'aperçois d'un soucis chagrinant :?
J'ai voulu retester ce code.
Je m'aperçoit qu'il fonctionne mal. En gros le Chemin de l'exe s'inscrit bien au bon endroit mais ne s'inscrit pas en entier !?
Dans mon exemple : "D:\_EXE\TicTacToe.exe" la clé est bien créée mais la valeur ressemble à ça : "D:\_EXE\Ti
testé en x64 PB 5.46 et 5.61
La suppression de clé elle fonctionne (suffit de dé-commenter).

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).
~~~~Règles du forum ~~~~
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
Avatar de l’utilisateur
Zorro
Messages : 2186
Inscription : mar. 31/mai/2016 9:06

Re: lancer un exe au demarrage

Message par Zorro »

de toute façon cette façon de faire avec windows 10 ne marche plus vraiment :)

il faut utiliser le dossier de démarrage de windows 10

soit manuellement en utilisant " shell:startup " dans "executer" de windows 10

soit en utilisant ce code qui fait a peut pres la meme chose :)
(il ressort le chemin qui pointe au meme endroit )

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
j'en avais deja parlé ici
http://www.purebasic.fr/french/viewtopi ... 10#p188441

et ici
http://www.purebasic.fr/french/viewtopi ... 10#p190853

et peut etre meme encore ailleurs :lol:
Avatar de l’utilisateur
Ar-S
Messages : 9540
Inscription : dim. 09/oct./2005 16:51
Contact :

Re: lancer un exe au demarrage

Message par Ar-S »

Sur le principe ok mais ça n'explique pas pourquoi ça ne marche pas au niveau du RegSetValueEx_ qui n’écrit pas tout le path.

---edit----
Du coup j'utilise le module de ts-soft qui fonctionne bien

Code : Tout sélectionner

http://www.purebasic.fr/english/viewtopic.php?f=12&t=56204&p=512775&hilit=REG_DWORD#p512775
~~~~Règles du forum ~~~~
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
Avatar de l’utilisateur
djes
Messages : 4252
Inscription : ven. 11/févr./2005 17:34
Localisation : Arras, France

Re: lancer un exe au demarrage

Message par djes »

Sans avoir testé, je me demande si tu as bien vérifié ta longueur (unicode...)
Avatar de l’utilisateur
Ar-S
Messages : 9540
Inscription : dim. 09/oct./2005 16:51
Contact :

Re: lancer un exe au demarrage

Message par Ar-S »

Je me doutais bien que l'unicode allait me faire un coup de traf.. ma variable longueur semble pourtant bonne.
Cependant comme le l'ai indiqué, le module de Ts-Soft fonctionne au poil. testé en simple reg_sz et et Dword.
Me suis fait un petit soft pour activer/désactiver le transfert TCP/IP sous windows.
~~~~Règles du forum ~~~~
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
Répondre