Page 1 sur 2

[R] Executer un fichier AutoIt au démarrage  

Posté : jeu. 21 févr. 2013 12:19
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.

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

Posté : jeu. 21 févr. 2013 12:46
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é.

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

Posté : jeu. 21 févr. 2013 19:45
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.

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

Posté : jeu. 21 févr. 2013 20:14
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")
 

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

Posté : ven. 22 févr. 2013 01:53
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".

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

Posté : sam. 23 févr. 2013 11:06
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.

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

Posté : sam. 23 févr. 2013 15:27
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.

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

Posté : dim. 24 févr. 2013 11:01
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.

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

Posté : dim. 24 févr. 2013 19:15
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"

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

Posté : dim. 24 févr. 2013 22:47
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

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

Posté : lun. 25 févr. 2013 11:32
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 ?

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

Posté : lun. 25 févr. 2013 18:05
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

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

Posté : lun. 25 févr. 2013 19:52
par Utilisateur 4989 supprimé
Ça n'a pas marché :(

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

Posté : lun. 25 févr. 2013 19:58
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"

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

Posté : lun. 25 févr. 2013 21:09
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:

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

Posté : mar. 26 févr. 2013 10:41
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 ?

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

Posté : mar. 26 févr. 2013 16:11
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
 

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

Posté : mar. 26 févr. 2013 16:47
par ani
tjrs étrange
le x: correspond à un disque mappé 'dit distant' ?

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

Posté : mar. 26 févr. 2013 17:20
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

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

Posté : mar. 26 févr. 2013 19:36
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.