[R] 'Rappatrier" un dossier pour application portable.

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
Avatar du membre
Manolo
Niveau 2
Niveau 2
Messages : 18
Enregistré le : dim. 24 févr. 2008 14:33
Localisation : France/Marseille
Status : Hors ligne

[R] 'Rappatrier" un dossier pour application portable.

#1

Message par Manolo »

Bonjour tout le monde,

Je me sers d'Autoit depuis peu,et je désire avoir des infos sur les lignes de script pour les dossier et les services qui sont ajouté.

Je voudrais savoir quoi mettre dans mon script pour rapatrier un dossier qui est créé dans les documents lors du lancement d'un logiciel portable qui est KMPlayer.
Je voudrais que ce dossier soit rapatrier à coté du lanceur s'il vous plaît.

Voila un exp... du script.Je précise que je n'ai pas encore shooté KMPlayer avec Regshot,et pas encore fais le script,c'est juste un exp... de base.

Code : Tout sélectionner

RunWait("regedit.exe /s KMPlayer.reg", @ScriptDir)
RunWait("App\KMPlayer.exe")
RunWait('regedit.exe /s /e "' & @ScriptDir & '\KMPlayer.reg" "HKEY_CURRENT_USER\Software\KMPlayer" ')
RegDelete("HKEY_CURRENT_USER\Software\KMPlayer")
En recherchant à ce sujet et en parcourant le web,je suis tombé sur un tuto,et j'ai vu cette ligne dans un script,

Code : Tout sélectionner

DirRemove( @AppDataDir & '\KMPlayer', 1)
(C'est moi qui est rajouté KMPlayer dans la ligne)Je voudrais savoir si cette ligne supprime le dossier ou le rapatrie ?
Je vois que le chemin du dossier est->AppData,si c'est dans les documents,quel est le chemin que je devrais mettre ?
Exp... sur Vista,C:\Utilisateur\(nom d'utilisateur)\Documents ?

Je désirerais aussi savoir,comment supprimer un service à la fermeture du logiciel,qui est créé lors du lancement d'un logiciel portable.

J'ai essayé de trouver des tutos sur le web,mais il n'y a rien à ce sujet,et très peu de tuto pour les scripts pour créé des logiciels portable.

Quand ils sont portable à la base,c'est pas très compliqué,mais quand il y a des dossiers de créé et des services,ça se complique.

Merci d'avance pour l'aide et les infos !

Bonne journée.

@ +
Modifié en dernier par Manolo le jeu. 14 août 2008 18:19, modifié 1 fois.
Image

Manolo
ani
Niveau 11
Niveau 11
Messages : 1826
Enregistré le : lun. 23 juil. 2007 12:31
Localisation : Bureau
Status : Hors ligne

Re: [..] Demande d'aide et infos pour script

#2

Message par ani »

bonjour

j'ai pas trop bien suivit l'affaire,
1: @appdatadir est la macro qui indique ce répertoire C:\Documents and Settings\TonNOmUser\Application Data , pour indiquer le dossier document c'est plutôt @MyDocumentsDir qui donne ce lien C:\Documents and Settings\TonNomUser\Mes documents
il existe une autre macro pour le répertoire alluser = @DocumentsCommonDir qui donne ce lien C:\Documents and Settings\AllUser\Mes documents

2: Le DirRemove est une fonction qui efface le dossier, le paramètre 1 indique qu'il efface egalement tout les sous dossier/fichier du répertoire sélectionner.

3: Rapatrier ? vers ou ? , tu peux faire un dircopy du dossier vers ton répertoire et effacer le répertoire avec DirRemove.
DirCopy ( "Dossier source", "Dossier destination" [, drapeau] )
Ce qui se trouve entre crocher est en option, sa valeur par défaul est 0 = ne réecrit pas si le dossier existe, si tu désire réecrire le dossier même existant (écraser) indique la valeur 1.

Pour supprimer un service je ne connait pas, je vais faire une tite recherche ;)
Avatar du membre
Manolo
Niveau 2
Niveau 2
Messages : 18
Enregistré le : dim. 24 févr. 2008 14:33
Localisation : France/Marseille
Status : Hors ligne

Re: [..] Demande d'aide et infos pour script

#3

Message par Manolo »

3: Rapatrier ? vers ou ? , tu peux faire un dircopy du dossier vers ton répertoire et effacer le répertoire avec DirRemove.
DirCopy ( "Dossier source", "Dossier destination" [, drapeau] )
Ce qui se trouve entre crocher est en option, sa valeur par défaul est 0 = ne réecrit pas si le dossier existe, si tu désire réecrire le dossier même existant (écraser) indique la valeur 1.
Oui voila,c'est exactement ca ! je ne veux pas qu'il soit supprimer.Juste qu'il soit rapatrier a la fermeture du logiciel,et qu'il soit réinjecté a sa place quand je lance le logiciel,pour éviter que ce dossier et ces sous dossier soient créé à chaque lancement du logiciel.

Je voudrais exp... que ce dossier et ces sous dossiers,soient rapatrié dans le dossier du portable à coté du lanceur,et quand je lance de nouveau le logiciel,qu'il soit réinjecter la ou ils étaient avant d'être exporté.

Je sais pas si je me fais bien comprendre,mais c'est pas évident de pouvoir expliqué en étant débutant dans la portabilisation de logiciel.

Si c'est possible,je désirerais avoir quelques macros pour ce qui est de supprimer des dossier ou les déplacer les exporté et les déplacer.
Car je n'ai aucune connaissance dans ce domaine,et ca m'aiderais bien de connaître les macros et les lignes que je dois écrire dans les scripts à venir.

Donc,si j'ai bien suivi,ces macros,

Code : Tout sélectionner

@appdatadir,@MyDocumentsDir,@DocumentsCommonDir
seraient pour exporter les dossiers créé,et non pour les supprimer ?

Et le

Code : Tout sélectionner

DirRemove
serait pour supprimer !

Merci bien d'avance pour les macros et les lignes que je souhaiterais avoir,et si possible aussi,et quand vous aurez trouvé,comment faire pour supprimer les services créé lors de lancement de logiciel portable.

Je vais continuer de chercher,mais vraiment pas évident de trouver des infos à ce sujet.

Grand Merci pour tout !!!

@ +
Image

Manolo
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11791
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [..] Demande d'aide et infos pour script

#4

Message par Tlem »

Manolo a écrit :Demande d'aide et infos pour script
Merci d'éviter ce genre de titre peut évocateur.
Vous n'avez pas lu les règles, vous serez donc fouetté en place publique. :P
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é".
Avatar du membre
Manolo
Niveau 2
Niveau 2
Messages : 18
Enregistré le : dim. 24 févr. 2008 14:33
Localisation : France/Marseille
Status : Hors ligne

Re: [..] 'Rappatrier" un dossier pour application portable.

#5

Message par Manolo »

Tlem a écrit :
Manolo a écrit :Demande d'aide et infos pour script
Merci d'éviter ce genre de titre peut évocateur.
Vous n'avez pas lu les règles, vous serez donc fouetté en place publique. :P
Heu,désolé :oops:
J'ai parcouru vite fait les règles,mais ne les aies pas lu en entier !
Je vais prendre le temps de le faire.

J'ai voulu éditer mon 1er post pour éditer le titre,mais c'était déjà fait.

Merci bien !

Bonne soirée !

@ +
Image

Manolo
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11791
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [..] 'Rappatrier" un dossier pour application portable.

#6

Message par Tlem »

Bon, je vais laisser tomber le fouet alors. ;)
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é".
Avatar du membre
Manolo
Niveau 2
Niveau 2
Messages : 18
Enregistré le : dim. 24 févr. 2008 14:33
Localisation : France/Marseille
Status : Hors ligne

Re: [..] Demande d'aide et infos pour script

#7

Message par Manolo »

Manolo a écrit :
3: Rapatrier ? vers ou ? , tu peux faire un dircopy du dossier vers ton répertoire et effacer le répertoire avec DirRemove.
DirCopy ( "Dossier source", "Dossier destination" [, drapeau] )
Ce qui se trouve entre crocher est en option, sa valeur par défaul est 0 = ne réecrit pas si le dossier existe, si tu désire réecrire le dossier même existant (écraser) indique la valeur 1.
Salut,

Je m'exprime mal !

Je m'explique,je suis en train de portabiliser CDBurnerXP.Je suis arrivé a tout mais j'ai juste un petit souci de dossier créé sur le DD,et je ne connais pas la macro pour rapatrier ces 2 dossiers et sous dossiers + fichiers->dans le dossier du portable à coté du lanceur,une fois que je ferme le logiciel.
Et si possible,quand je lance le logiciel que ces 2 dossiers et sous dossier + fichiers etc... soit exporté a leur endroit respectif pour ne pas perdre exp les fichiers etc...
Et vice versa ! Automatiser cet aller retours si on peut dire.

Je te donne les chemins de ces dossier créé pour Vista,

Le 1er-> C:\Utilisateur\Manolito\AppData\Local\(dossier->CDBurnerXP_Soft)\(sous dossier->cdbxpp.exe_Url_grurpbpgenjvwncpty23zeuzpcjollte)\(sous,sous dossier->4.0.24.439)\(fichier->user.config)

Le 2ème->C:\Utilisateur\Manolito\AppData\Roaming\(dossier->CDBurnerXP_Soft)\(sous dossier->cdbxpp.exe_Url_grurpbpgenjvwncpty23zeuzpcjollte)\(sous,sous,dossier->4.0.24.439)\(fichier->user.config)

Je voudrais juste savoir comment faire.

Dans l'attente,merci d'avance !

Bonne journée !

@ +
Image

Manolo
Avatar du membre
Tragan
Niveau 3
Niveau 3
Messages : 38
Enregistré le : jeu. 01 nov. 2007 23:51
Localisation : Le monde et ses environs...
Status : Hors ligne

Re: [..] Demande d'aide et infos pour script

#8

Message par Tragan »

Salut à toi Manolo !

Je ne sais pas, mais ta tête me dit quelques choses :lol:

Pour rapatrier :

Code : Tout sélectionner

;1: Si c'est un fichier

FileCopy("chemin du Fichier à rapatrier\Tonfichier.extension","chemin du Fichier de reception\Tonfichier.extension",9) 
;9: écrase le fichier s'il existe déjà et créer le Dossier de reception s'il nexiste pas

; ou

FileMove("chemin du Fichier à rapatrier\Tonfichier.extension","chemin du Fichier de reception\Tonfichier.extension",9) 
;9: écrase le fichier s'il existe déjà et créer le Dossier de reception s'il nexiste pas


;2: Si c'est un Dossier

; par sécurité, créer le Dossier de reception (s'il nexiste pas, biensur)
DirCreate("chemin du dossier de reception")

;Copie par comparaison de Taille dans une boucle infinie (sortie de la boucle = ExitLoop)
$a=DirGetSize("chemin du Dossier à rapatrier")
While 1
$b=DirGetSize("chemin du dossier de reception")
If $a=$b Then ExitLoop
DirCopy("chemin du Dossier à rapatrier","chemin du dossier de reception",1) 
WEnd

;ou

;Déplace le Dossier en créant ton Dossier de réception et contrôle que le Dossier a bien été déplacé
While 1
If Not FileExists("chemin du Dossier à rapatrier") Then ExitLoop
DirMove("chemin du Dossier à rapatrier","chemin du dossier de reception",1)
WEnd
Il y a sûrement d'autres moyens, moi j'utilise ceux-ci sans soucis...

Allez, en espérant t'avoir apporté un élément de réponse...

Bon Vent !

Tragan

ps: content de te retrouver là ! :wink: , n'oublie pas de mettre un [R] si pour toi c'est résolu...
Bon Vent !

Tragan
Plus j'apprends, plus je prends la mesure de ce que je ne sais pas... (et personnellement y-a du boulot ! :mrgreen: )
Avatar du membre
Manolo
Niveau 2
Niveau 2
Messages : 18
Enregistré le : dim. 24 févr. 2008 14:33
Localisation : France/Marseille
Status : Hors ligne

Re: [..] 'Rappatrier" un dossier pour application portable.

#9

Message par Manolo »

Salut Tragan :wink:

Tu vois même ici je viens casser les pieds avec mes scripts et mes macros :mrgreen:
Ca me fais plaisir de te rencontrer ici !

Je vais tester et essayer ce que tu me propose.

C'est vrai que je n'avais pas créé le dossier de réception quand j'avais testé.

Mais ce qui est quand meme bizarre,c'est qu'avec cette macro ci dessous,

Code : Tout sélectionner

DirRemove( @AppDataDir & '\InfraRecorder', 1)
ca supprime le dossier de InfraRecorder qui est créé au meme endroit mais sur Roaming,et si je fais la meme chose sur le script de CDBurnerXP Pro

Code : Tout sélectionner

DirRemove( @AppDataDir & '\CDBurnerXP_Soft', 1)
et ben ca fais rien du tout,le dossier reste a ca place ???

Comme il y a 2 sous dossiers et un fichier,j'ai pensé qu'il était peut etre trop lourd ?

Enfin,je vais essayer ca.

Je te remercie bien pour les infos et ton aide !

@ +
Image

Manolo
Avatar du membre
Manolo
Niveau 2
Niveau 2
Messages : 18
Enregistré le : dim. 24 févr. 2008 14:33
Localisation : France/Marseille
Status : Hors ligne

Re: [..] 'Rappatrier" un dossier pour application portable.

#10

Message par Manolo »

Salut,

J'ai testé et essayé plusieurs méthode et plusieurs chemins,mais j'y suis pas arrivé.
je crois que la cause c'est le chemin.

Je n'ai pas d'erreus sur le scrips qued je l'ouvre avec AutoIt,mais les dossiers qui sont créé ne bouge pas.

J'ai réussi avec une macro de supprimer celui qui est créé sur Roaming,mais d'ès que je relance le script j'ai une erreur car le dossier n'est pas remis a sa place.
Image
Et pour ne plus que j'ai l'erreur,il faut que je supprime le dossier qui est aussi créé sur Local "CDBurnerXP_Soft"

Voila le 1er script qui n'a pas d'erreur mais n'importe n'y exporte ces 2 dossiers,

Code : Tout sélectionner

#NoTrayIcon
RunWait("regedit.exe /s cdbxpp.reg", @ScriptDir)
RunWait("Many\cdbxpp\cdbxpp.exe")
RunWait('regedit.exe /s /e "' & @ScriptDir & '\cdbxpp.reg" "HKEY_CURRENT_USER\Software\cdbxpp" ')
RegDelete("HKEY_CURRENT_USER\Software\cdbxpp")
RegDelete("HKEY_CURRENT_USER\Software\Stefan Haglund\CDBurnerXP")
DirCreate("Desktop\Portable CDBurnerXP Pro v 4.0.024.439 .Fr\Data")
$a=DirGetSize("Utilisateur\Manolito\AppData\Local\CDBurnerXP_Soft")
While 1
$b=DirGetSize("Desktop\Portable CDBurnerXP Pro v 4.0.024.439 .Fr\Data")
If $a=$b Then ExitLoop
DirCopy("Utilisateur\Manolito\AppData\Local\CDBurnerXP_Soft","Desktop\Portable CDBurnerXP Pro v 4.0.024.439 .Fr\Data",1)
WEnd
Et celui ci dessous supprime juste le dossier sur Roaming,mais ilpossible après de relancer le log sans avoir l'erreur.

Code : Tout sélectionner

#NoTrayIcon
RunWait("regedit.exe /s cdbxpp.reg", @ScriptDir)
RunWait("Many\cdbxpp\cdbxpp.exe")
RunWait('regedit.exe /s /e "' & @ScriptDir & '\cdbxpp.reg" "HKEY_CURRENT_USER\Software\cdbxpp" ')
RegDelete("HKEY_CURRENT_USER\Software\cdbxpp")
RegDelete("HKEY_CURRENT_USER\Software\Stefan Haglund\CDBurnerXP")
While 1
$a=FileExists(@AppDataDir&"\CDBurnerXP_Soft")
$b=FileExists(@AppDataDir&"\CDBurnerXP_Soft")
If $a+$b=0 Then ExitLoop 
DirRemove(@AppDataDir&"\CDBurnerXP_Soft",1)
DirRemove(@AppDataDir&"\CDBurnerXP_Soft",1)
WEnd
J'ai aussi essayé celui ci dessous,mais rien donné non plus.

Code : Tout sélectionner

#NoTrayIcon
RunWait("regedit.exe /s cdbxpp.reg", @ScriptDir)
RunWait("Many\cdbxpp\cdbxpp.exe")
RunWait('regedit.exe /s /e "' & @ScriptDir & '\cdbxpp.reg" "HKEY_CURRENT_USER\Software\cdbxpp" ')
RegDelete("HKEY_CURRENT_USER\Software\cdbxpp")
RegDelete("HKEY_CURRENT_USER\Software\Stefan Haglund\CDBurnerXP")
While 1
$a=FileExists(@UserProfileDir&"\Local\CDBurnerXP_Soft")
$b=FileExists(@UserProfileDir&"\Roaming\CDBurnerXP_Soft")
If $a+$b=0 Then ExitLoop 
DirRemove(@UserProfileDir&"\Local\CDBurnerXP_Soft",1)
DirRemove(@UserProfileDir&"\Roaming\CDBurnerXP_Soft",1)
WEnd
Je crois,peu etre que ca viens du chemin,mais j'en ai essayé beaucoup,et j'y suis pas arrivé.

A un moment,j'ai réussi a copier le dossier a coté du lanceur,mais quand j'ai été voir sur le DD,le dossier y était toujours.
me souviens plus de script,mais c'est pas ce que je voulais.

Bon,je vais laisser tomber pour le moment,car j'ai le cerveau qui fume :)

Merci bien quand meme pour la patience,pour l'aide et pour tout !!!

Bonne journée !

@ +
Image

Manolo
ani
Niveau 11
Niveau 11
Messages : 1826
Enregistré le : lun. 23 juil. 2007 12:31
Localisation : Bureau
Status : Hors ligne

Re: [..] 'Rappatrier" un dossier pour application portable.

#11

Message par ani »

J'ai un peu de mal aussi :)
Pour les macro = voir aide ici

Pour que je comprenne bien, quand vous installez un programme, vous faite une installation du type simple dont le lien pointe vers c:\program file\cxbur.. est vous voudriez exporter le tout dans le répertoire de votre script, et d'ensuite dès le lancement de votre script le tout doit être réinjecté dans le dossier d'origine ?

Dans vos cmd RunWait, je reprend votre exemple ;)
RunWait("regedit.exe /s cdbxpp.reg", @ScriptDir)
vous pouvez noter à la place cdbxpp.reg", @ScriptDir ceux-ci
.\cdbxpp.reg ou encore @scriptdir & \"cdbxpp.reg
alex65
Niveau 2
Niveau 2
Messages : 24
Enregistré le : ven. 27 juil. 2007 12:30
Status : Hors ligne

Re: [..] 'Rappatrier" un dossier pour application portable.

#12

Message par alex65 »

Bonjour,

Sur un système de fichiers qui gère les liens symbolique comme NTFS, plutôt que de rappatrier des dossiers, on peu aussi créer un lien avec FileCreateNTFSLink. Cela évite des transferts inutiles.

Pour supprimer un service voici les commandes DOS à coupler avec la fonction RunWait :
sc stop leservice => pour l'arrêter
sc config leservice start= disabled => pour le désactiver
sc delete leservice => pour le supprimer

@+
Avatar du membre
Manolo
Niveau 2
Niveau 2
Messages : 18
Enregistré le : dim. 24 févr. 2008 14:33
Localisation : France/Marseille
Status : Hors ligne

Re: [..] 'Rappatrier" un dossier pour application portable.

#13

Message par Manolo »

ani a écrit :J'ai un peu de mal aussi :)
Pour les macro = voir aide ici

Pour que je comprenne bien, quand vous installez un programme, vous faite une installation du type simple dont le lien pointe vers c:\program file\cxbur.. est vous voudriez exporter le tout dans le répertoire de votre script, et d'ensuite dès le lancement de votre script le tout doit être réinjecté dans le dossier d'origine ?

Dans vos cmd RunWait, je reprend votre exemple ;)
RunWait("regedit.exe /s cdbxpp.reg", @ScriptDir)
vous pouvez noter à la place cdbxpp.reg", @ScriptDir ceux-ci
.\cdbxpp.reg ou encore @scriptdir & \"cdbxpp.reg
Salut,
J'ai un peu de mal aussi :)
Pour les macro = voir aide ici
Merci bien pour ce lien.Très intéressant ça.
Pour que je comprenne bien, quand vous installez un programme, vous faite une installation du type simple dont le lien pointe vers c:\program file\cxbur.. est vous voudriez exporter le tout dans le répertoire de votre script, et d'ensuite dès le lancement de votre script le tout doit être réinjecté dans le dossier d'origine ?
Non ce n'est pas pour les programmes installé.Mais pour des logiciel portable,sans installation.
Parfois ceux ci au lancement créent des dossiers de leur config etc... sur le DD,et parfois ces dossiers sont nécessaires.et au lancement du logiciel quand ces dossiers vont être créé,et je voudrais qu'à la fermeture du logiciel ces dossiers soient importé à coté du lanceur,et exporté la ou ils étaient quand je relance le log.
Dans vos cmd RunWait, je reprend votre exemple ;)
RunWait("regedit.exe /s cdbxpp.reg", @ScriptDir)
vous pouvez noter à la place cdbxpp.reg", @ScriptDir ceux-ci
.\cdbxpp.reg ou encore @scriptdir & \"cdbxpp.reg
Pour lancer le logiciel,j'ai plus ou moins acquis.Mais je vais aussi tester ces méthodes.
Mais le plus qui m'intérresse,c'est l'importation et l'exportation des dossiers.
Car prfois des logiciels créent des dossier sur Data avec leur config et... et s'il n'y a pas dans le script une macro pour importer et exporter ce dossier Data la ou il doit etre,le logiciel ne se lancera pas,et parfois c'est même impossible d'arriver à faire le lanceur car AutoIt plante.
Comme ca été le cas pour le logiciel Photo Filtre.
Enfin,je débute à peine,et j'ai encore beaucoup à apprendre.Et avec le temps j'espère que j'y arriverais.
Merci bien pour tout !!!
Bonne journée !

@ +
Image

Manolo
Avatar du membre
Manolo
Niveau 2
Niveau 2
Messages : 18
Enregistré le : dim. 24 févr. 2008 14:33
Localisation : France/Marseille
Status : Hors ligne

Re: [..] 'Rappatrier" un dossier pour application portable.

#14

Message par Manolo »

alex65 a écrit :Bonjour,

Sur un système de fichiers qui gère les liens symbolique comme NTFS, plutôt que de rappatrier des dossiers, on peu aussi créer un lien avec FileCreateNTFSLink. Cela évite des transferts inutiles.

Pour supprimer un service voici les commandes DOS à coupler avec la fonction RunWait :
sc stop leservice => pour l'arrêter
sc config leservice start= disabled => pour le désactiver
sc delete leservice => pour le supprimer

@+
Salut,
Sur un système de fichiers qui gère les liens symbolique comme NTFS, plutôt que de rappatrier des dossiers, on peu aussi créer un lien avec FileCreateNTFSLink. Cela évite des transferts inutiles.
C'est à dire ?
Je débute à peine et je ne connais pas toutes les possibilité qu'il peut y avoir.Si c'était possible d'avoir une explication un peu plus détaillé,ce serai sympa.
Pour supprimer un service voici les commandes DOS à coupler avec la fonction RunWait :
sc stop leservice => pour l'arrêter
sc config leservice start= disabled => pour le désactiver
sc delete leservice => pour le supprimer
La aussi je cale un peu.
Comment ca à coupler avec la fonction RunWait ? Dans la meme macro ?
Il faut alors créé un script,avec une macro pour lancer l'invité de commande pour que ca supprime le service à la fermeture du logiciel ?
Si c'est possible d'avoir un exp... pour que je sache comment faire cette macro,car la je suis un peu perdu.
Je précise que c'est que pour que des logiciels portable.
Merci bien de m'avoir répondu !
Et merci d'avance pour l'aide et les infos !

Bonne journée.

@ +
Image

Manolo
alex65
Niveau 2
Niveau 2
Messages : 24
Enregistré le : ven. 27 juil. 2007 12:30
Status : Hors ligne

Re: [..] 'Rappatrier" un dossier pour application portable.

#15

Message par alex65 »

- En fait, un lien symbolique désigne un "pseudo-répertoire" pointant vers un répertoire réel. Cela permet de faire exister la source à plusieurs endroits différents dans l'arborescence.
Avec les dernières versions de NTFS, on peut créer ce type de lien en pointant un répertoire ou un fichier.
Par exemple avec :

Code : Tout sélectionner

FileCreateNTFSLink(@MyDocumentsDir, "c:\mon_programme\documents",1)
On crée dans le dossier "c:\mon_programme" un lien symbolique "documents" pointant sur le dossier "Mes Documents". En entrant dans le dossier documents, je serai en fait dans le dossier "Mes Documents".

- En fait pour lancer des commandes DOS, il faut par exemple écrire ceci :

Code : Tout sélectionner

RunWait(@ComSpec & " /c " & "sc stop leservice","",@SW_HIDE)
Pour arrêter le service "leservice".

@+
Avatar du membre
Manolo
Niveau 2
Niveau 2
Messages : 18
Enregistré le : dim. 24 févr. 2008 14:33
Localisation : France/Marseille
Status : Hors ligne

Re: [..] 'Rappatrier" un dossier pour application portable.

#16

Message par Manolo »

alex65 a écrit :- En fait, un lien symbolique désigne un "pseudo-répertoire" pointant vers un répertoire réel. Cela permet de faire exister la source à plusieurs endroits différents dans l'arborescence.
Avec les dernières versions de NTFS, on peut créer ce type de lien en pointant un répertoire ou un fichier.
Par exemple avec :

Code : Tout sélectionner

FileCreateNTFSLink(@MyDocumentsDir, "c:\mon_programme\documents",1)
On crée dans le dossier "c:\mon_programme" un lien symbolique "documents" pointant sur le dossier "Mes Documents". En entrant dans le dossier documents, je serai en fait dans le dossier "Mes Documents".

- En fait pour lancer des commandes DOS, il faut par exemple écrire ceci :

Code : Tout sélectionner

RunWait(@ComSpec & " /c " & "sc stop leservice","",@SW_HIDE)
Pour arrêter le service "leservice".

@+
Salut tout le monde,
Salut alex65,

Déja un grand merci pour toute ces infos !

Je n'en suis pas encore la,mais c'est bien de le savoir au cas si l'occasion se présentais.
Donc si j'ai bien saisis,pour supprimer un service c'est,

Code : Tout sélectionner

RunWait(@ComSpec & " /c " & "sc delete leservice","et ici le nom du service ? ",@SW_HIDE)
Et le nom du service sc delete leservice","et ici le nom du service<-doit être à la fin,c'est bien ça ? et sc delete si je veux le supprimer a la fermeture du logiciel !
En fait, un lien symbolique désigne un "pseudo-répertoire" pointant vers un répertoire réel. Cela permet de faire exister la source à plusieurs endroits différents dans l'arborescence.
Avec les dernières versions de NTFS, on peut créer ce type de lien en pointant un répertoire ou un fichier.
Je testerais cette méthode qui a l'air bien pratique !

Mais il, y a beaucoup de chose que je dois encore apprendre comme comment et à quel moment je dois créé un dossier Data nécessaire au logiciel l'exporter quand le logiciel démarre et l'importer à coté du lanceur quand je ferme le logiciel.
Dernièrement je pense que c'est la cause que je n'ai pas pu créer le lanceur pour un logiciel car AutoIt plantait à chaque fois que je voulais compiler le lanceur car il devait manquer une macro pour ce dossier Data.
C'était pour le Portable de Photo Filtre.

Mais bon je n'en suis pas encore la.
Et si je pouvais avoir des scripts pour bien vois comment ils sont fait avec les macros nécessaire,ça m'avancerais bien.

Mais bon,doucement doucement j'y arriverais.

En tout les cas,merci bien pour l'aide et tout les conseils !!!

Bonne journée.

@ +
Image

Manolo
Avatar du membre
Manolo
Niveau 2
Niveau 2
Messages : 18
Enregistré le : dim. 24 févr. 2008 14:33
Localisation : France/Marseille
Status : Hors ligne

Re: [..] 'Rappatrier" un dossier pour application portable.

#17

Message par Manolo »

alex65 a écrit :Bonjour,

Sur un système de fichiers qui gère les liens symbolique comme NTFS, plutôt que de rappatrier des dossiers, on peu aussi créer un lien avec FileCreateNTFSLink. Cela évite des transferts inutiles.

Pour supprimer un service voici les commandes DOS à coupler avec la fonction RunWait :
sc stop leservice => pour l'arrêter
sc config leservice start= disabled => pour le désactiver
sc delete leservice => pour le supprimer

@+
Salut,
Sur un système de fichiers qui gère les liens symbolique comme NTFS, plutôt que de rappatrier des dossiers, on peu aussi créer un lien avec FileCreateNTFSLink. Cela évite des transferts inutiles.
Mais c'est que pour des logiciels versions portables avec lanceur !
C'est pour cela que je voudrais que les dossiers nécessaire au logiciel soit importé au lancement de celui ci,et exporter à coté du lanceur exp... quand je ferme le logiciel.
Car si je fais comme ça,les dossier resteront meme après la fermeture du logiciel et la ce ne serait plus du portable.
ce que je voudrais,c'est que quand je ferme le logiciel,il n'y ai plus de traces du logiciel qui a été lancé et fermé.
Mais si cette méthode fonctionne pour les transfert de dossier,c'est très bien !!!

Merci encore !!!

@ +
Image

Manolo
Répondre