[R] Executer un fichier AutoIt au démarrage

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Utilisateur 4989 supprimé
Status : Hors ligne

[R] Executer un fichier AutoIt au démarrage

#1

Message par Utilisateur 4989 supprimé »

Bonjour,
j'ai une question : peut-on exécuter un fichier AutoIt dès le démarrage d'une session sans mettre le fichier dans "démarrage" ?
Merci pour votre aide.
Modifié en dernier par Utilisateur 4989 supprimé le sam. 02 mars 2013 13:36, modifié 1 fois.
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11830
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [..] Executer un fichier AutoIt au démarrage

#2

Message par Tlem »

Oui. Vous devez rajouter les bonnes informations dans la base de registre :
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run
ou
HKEY_LOCAL_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Run
Si vous avez besoin de plus d'informations, faites quelques recherches sur le forum, car cela à déjà été demandé.
Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Utilisateur 4989 supprimé
Status : Hors ligne

Re: [..] Executer un fichier AutoIt au démarrage

#3

Message par Utilisateur 4989 supprimé »

Avant de poster mon sujet, j'ai justement fait des recherches sur ce forum. N'ayant pas trouvé la réponse à ma question, j'ai donc poster un message.
Scharz
Niveau 2
Niveau 2
Messages : 22
Enregistré le : lun. 14 janv. 2013 20:19
Status : Hors ligne

Re: [..] Executer un fichier AutoIt au démarrage

#4

Message par Scharz »

Pas plus compliqué :

Code : Tout sélectionner

RegWrite("HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run", "NomDuProgramme", "REG_SZ", @ScriptFullPath)
ou
FileCreateShortcut(@ScriptFullPath, @StartupCommonDir & "\NomDuProgramme.lnk")
 
Avatar du membre
parazitenew
Niveau 7
Niveau 7
Messages : 310
Enregistré le : sam. 10 déc. 2011 15:08
Localisation : Algerie
Status : Hors ligne

Re: [..] Executer un fichier AutoIt au démarrage

#5

Message par parazitenew »

Tu vas dans "C:\Users\Nom_PC\AppData\Roaming\Microsoft\Windows\Start Menu\Programs" Tu mets ton script dedans en (.exe), et c'est réglé.

TU dois d'abord aller dans les propriétés des dossiers et cocher "Afficher les fichiers cachés".
Utilisateur 4989 supprimé
Status : Hors ligne

Re: [..] Executer un fichier AutoIt au démarrage

#6

Message par Utilisateur 4989 supprimé »

parazitenew a écrit :Tu vas dans "C:\Users\Nom_PC\AppData\Roaming\Microsoft\Windows\Start Menu\Programs" Tu mets ton script dedans en (.exe), et c'est réglé.

TU dois d'abord aller dans les propriétés des dossiers et cocher "Afficher les fichiers cachés".
Scharz a écrit :

Code : Tout sélectionner

FileCreateShortcut(@ScriptFullPath, @StartupCommonDir & "\NomDuProgramme.lnk")
Justement, je ne veux pas le mettre dans démarrage.
Scharz a écrit :

Code : Tout sélectionner

RegWrite("HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run", "NomDuProgramme", "REG_SZ", @ScriptFullPath)
Je ne comprend pas.
Avatar du membre
parazitenew
Niveau 7
Niveau 7
Messages : 310
Enregistré le : sam. 10 déc. 2011 15:08
Localisation : Algerie
Status : Hors ligne

Re: [..] Executer un fichier AutoIt au démarrage

#7

Message par parazitenew »

Pour le code de Scharz il crée une clé dans le registre windows, tu remplaces juste le nom de ton programme et le chemin d'accés vers lui.
Utilisateur 4989 supprimé
Status : Hors ligne

Re: [..] Executer un fichier AutoIt au démarrage

#8

Message par Utilisateur 4989 supprimé »

Donc j'ai mis ça :

Code : Tout sélectionner

RegWrite("HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run", "NomFichierAutoIt", "REG_SZ", @ScriptFullPath)
et ça n'a pas ajouter de clef dans le registre.

J'ai donc changé "HKLM" en "HKEY_LOCAL_MACHINE", parce que "HKLM" n'existe pas. J'ai donc mis ça :

Code : Tout sélectionner

RegWrite("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run", "NomFichierAutoIt", "REG_SZ", @ScriptFullPath)
et ça n'a pas non plus ajouter de clef dans le registre.

Je précise que j'ai bien mis ce code dans le fichier que je veux qui se lance au démarrage et que j'ai remplacé "NomFichierAutoIt" par le nom du fichier AutoIt.
Avatar du membre
parazitenew
Niveau 7
Niveau 7
Messages : 310
Enregistré le : sam. 10 déc. 2011 15:08
Localisation : Algerie
Status : Hors ligne

Re: [..] Executer un fichier AutoIt au démarrage

#9

Message par parazitenew »

Tu dois aussi remplacer "@ScriptFullPath" par le chemin d'accés vers ton script, "X:\****\***\Ton fichier Autoit.au3"

Et si autoit n'est pas installé sur la machine sur la quelle tu veux mettre ce fichier, faut le compiler en ".exe"
Avatar du membre
mikell
Spammer !
Spammer !
Messages : 6292
Enregistré le : dim. 29 mai 2011 17:32
Localisation : Deep Cévennes
Status : Hors ligne

Re: [..] Executer un fichier AutoIt au démarrage

#10

Message par mikell »

C'est clair que si autoit n'est pas installé, il est possible qu'un fichier .au3 marche moins bien...

Code : Tout sélectionner

RegWrite("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run", "NomFichierAutoIt", "REG_SZ", @ScriptFullPath)
Cette instruction telle quelle seule dans un script (compilé ou pas) fait sur mon XP l'inscription dans le registre, bien visible dans regedit après actualisation
C'est peut-être une histoire d'autorisation
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
Utilisateur 4989 supprimé
Status : Hors ligne

Re: [..] Executer un fichier AutoIt au démarrage

#11

Message par Utilisateur 4989 supprimé »

parazitenew a écrit :Tu dois aussi remplacer "@ScriptFullPath" par le chemin d'accés vers ton script, "X:\****\***\Ton fichier Autoit.au3"
Que je mette "X:\****\***\Mon fichier Autoit.au3" ou "@ScriptFullPath", ça ne revient pas à la même chose ?
parazitenew a écrit :Et si autoit n'est pas installé sur la machine sur la quelle tu veux mettre ce fichier, faut le compiler en ".exe"
Quand j'ai fait le test, je l'ai fait depuis l'ordi qui a AutoIt, qui est l'ordi où je créé les codes.
Non, il n'est pas installé sur l'autre ordi mais de toute façon je compile toujours mes fichiers AutoIt en exe.
mikell a écrit :Cette instruction telle quelle seule dans un script (compilé ou pas) fait sur mon XP l'inscription dans le registre, bien visible dans regedit après actualisation
C'est peut-être une histoire d'autorisation
J'ai Windows 7.
La clé devrait s'appeler comment ? "NomFichierAutoIt" ? Si c'est ça, je ne l'ai pas.
Concernant les autorisations, je suis administrateur de l'ordi. Si ça vient des autorisations, je peux faire quoi ?
Avatar du membre
mikell
Spammer !
Spammer !
Messages : 6292
Enregistré le : dim. 29 mai 2011 17:32
Localisation : Deep Cévennes
Status : Hors ligne

Re: [..] Executer un fichier AutoIt au démarrage

#12

Message par mikell »

Peu importe le nom de la clé, le RegWrite va la créer ^^
Connais pas w7, mais essaie de mettre #RequireAdmin en tête de script
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
Utilisateur 4989 supprimé
Status : Hors ligne

Re: [..] Executer un fichier AutoIt au démarrage

#13

Message par Utilisateur 4989 supprimé »

Ça n'a pas marché :(
Avatar du membre
mikell
Spammer !
Spammer !
Messages : 6292
Enregistré le : dim. 29 mai 2011 17:32
Localisation : Deep Cévennes
Status : Hors ligne

Re: [..] Executer un fichier AutoIt au démarrage

#14

Message par mikell »

Hmpf... mon XP et moi on passe la main sur ce coup-là
Tu devrais ouvrir un sujet dans l'aide générale, avec un titre plus évocateur genre "Problème RegWrite sous windows 7"
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
Avatar du membre
jguinch
Modérateur
Modérateur
Messages : 2515
Enregistré le : lun. 14 févr. 2011 22:12
Status : Hors ligne

Re: [..] Executer un fichier AutoIt au démarrage

#15

Message par jguinch »

Salut
@vla : ton Windows 7 serait pas 64 bits par hasard ? :idea:
Si c'est le cas, RegWrite("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run", "NomFichierAutoIt", "REG_SZ", @ScriptFullPath) va écrire la valeur dans HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Run si le programme est compilé/exécuter en 32 bits (c'est en général le cas).
Donc si ça se trouve, ça fonctionne bien mais tu ne regardes pas au bon endroit :wink:
Le script, ça fait gagner beaucoup de temps... à condition d'en avoir beaucoup devant soi !
Utilisateur 4989 supprimé
Status : Hors ligne

Re: [..] Executer un fichier AutoIt au démarrage

#16

Message par Utilisateur 4989 supprimé »

jguinchard a écrit :ton Windows 7 serait pas 64 bits par hasard ? :idea:
Oui
jguinchard a écrit :Si c'est le cas, RegWrite("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run", "NomFichierAutoIt", "REG_SZ", @ScriptFullPath) va écrire la valeur dans HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Run si le programme est compilé/exécuter en 32 bits (c'est en général le cas).
Donc si ça se trouve, ça fonctionne bien mais tu ne regardes pas au bon endroit :wink:
T'as raison, il se trouve bien là.
J'avais bien compilé en 32 bits.

Quand j'ai allumé mon ordi, mon fichier AutoIt s'est ouvert dans l'éditeur AutoIt, je me demandais pourquoi, mais c'est parce que ça marche.
Par contre, la clé est "X:\...\...\...\NomFichierAutoIt.au3". Du coup, ça a lancé ce que je t'ai dit dans la ligne d'en haut, mais ça n'a pas lancé le exe.
J'ai donc supprimé la clé du registre, j'ai lancé le exe pour qu'il remette la clé dans le registre mais avec ".exe", mais il ne veut plus. C'est normal ? J'ai fais une bêtise de la supprimer et je dois la remettre manuellement ?
Avatar du membre
jguinch
Modérateur
Modérateur
Messages : 2515
Enregistré le : lun. 14 févr. 2011 22:12
Status : Hors ligne

Re: [..] Executer un fichier AutoIt au démarrage

#17

Message par jguinch »

Si ça a fonctionné avec le au3, ça doit fonctionner avec le compilé.
Met une trace pour voir ce que te retourne la fonction RegWrite :

Code : Tout sélectionner

$result = RegWrite("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run", "NomFichierAutoIt", "REG_SZ", @ScriptFullPath)
If $result Then 
  MsgBox(0, "OK", "OK")
Else
  MsgBox("Erreur", "Erreur " & @error)
EndIf
 
Le script, ça fait gagner beaucoup de temps... à condition d'en avoir beaucoup devant soi !
ani
Niveau 11
Niveau 11
Messages : 1826
Enregistré le : lun. 23 juil. 2007 12:31
Localisation : Bureau
Status : Hors ligne

Re: [..] Executer un fichier AutoIt au démarrage

#18

Message par ani »

tjrs étrange
le x: correspond à un disque mappé 'dit distant' ?
Utilisateur 4989 supprimé
Status : Hors ligne

Re: [..] Executer un fichier AutoIt au démarrage

#19

Message par Utilisateur 4989 supprimé »

jguinchard a écrit :Si ça a fonctionné avec le au3, ça doit fonctionner avec le compilé.
Met une trace pour voir ce que te retourne la fonction RegWrite :

Code : Tout sélectionner

$result = RegWrite("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run", "NomFichierAutoIt", "REG_SZ", @ScriptFullPath)
If $result Then 
  MsgBox(0, "OK", "OK")
Else
  MsgBox("Erreur", "Erreur " & @error)
EndIf
 
Il y a une erreur sur ton code. :P :lol: Je suis content de l'avoir trouvé, je m'améliore.
Dans le 2ème MsgBox, il manquait le "0" avant "Erreur" :

Code : Tout sélectionner

$result = RegWrite("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run", "NomFichierAutoIt", "REG_SZ", @ScriptFullPath)
If $result Then
  MsgBox(0, "OK", "OK")
Else
  MsgBox(0, "Erreur", "Erreur " & @error)
EndIf
Ça a donné : "Erreur1"
ani a écrit :tjrs étrange
le x: correspond à un disque mappé 'dit distant' ?
Non, c'est le lecteur C:\
J'avais mis "X:\" pour reprendre ce qu'avait dit parazitenew
ani
Niveau 11
Niveau 11
Messages : 1826
Enregistré le : lun. 23 juil. 2007 12:31
Localisation : Bureau
Status : Hors ligne

Re: [..] Executer un fichier AutoIt au démarrage

#20

Message par ani »

L'erreur 1 signifie qu'il ne peut ouvrir la clé, un peut normal non ?

Si le fichier est un au3 est que tu veux l'executer il faut indiquer quel programme et quel commande, et non le nom du fichier qui lui s'ouvrira avec l'editeur X.
on l'utilise comme ceux-ci : lendroit/de/autoit.exe /AutoIt3ExecuteScript script.au3

vu que c un win7 en 64 ? c bien çà ?

Code : Tout sélectionner

RegWrite("HKEY_LOCAL_MACHINE\64\SOFTWARE\Microsoft\Windows\CurrentVersion\Run","Start","REG_SZ",@AutoItExe & chr(32) & "/AutoIt3ExecuteScript" & chr(32) & @ScriptFullPath)
indique #RequireAdmin en début de script
faire une verification de la clé si elle existe on continue la suite du script sinon on inscrit dans le registre.
Si y a des espacement pour tel fichier ajoute le caractere " = chr(34)
Genre pour la macro @AutoitExe ou @ScriptFullPath

Code : Tout sélectionner

RegWrite("HKEY_LOCAL_MACHINE\64\SOFTWARE\Microsoft\Windows\CurrentVersion\Run","Start","REG_SZ",Chr(34) & @AutoItExe & Chr(34) & chr(32) & "/AutoIt3ExecuteScript" & Chr(32) & Chr(34) & @ScriptFullPath & Chr(34))
en esperant que ;)
bon apprentissage.
Répondre