[R] Lancer une appli depuis le systray & modif d'un .ini

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Avatar du membre
mikell
Spammer !
Spammer !
Messages : 6292
Enregistré le : dim. 29 mai 2011 17:32
Localisation : Deep Cévennes
Status : Hors ligne

Re: [..] Lancer une application placé dans le systray

#21

Message par mikell »

J'ai désinstallé Cobian mais si je me rappelle bien, il y a 2 ou 3 petits fichiers de config dans un sous-dossier du répertoire d'installation
Faudrait nous poster ces fichiers
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
Loulou63
Niveau 4
Niveau 4
Messages : 51
Enregistré le : lun. 22 août 2011 10:58
Status : Hors ligne

Re: [..] Lancer une application placé dans le systray

#22

Message par Loulou63 »

Je ne cherche en rien à vous énerver ou de faire mon script à ma place mais seulement d'avoir les bonnes fonctions à utiliser.

Mais si me répondre vous ennuie alors ne regarder pas mon sujet!!

Pour le reste voici le fichier de configuration Cobian :
► Afficher le texte
Les éléments de couleurs sont à modifier.

En VB, on créé un variable qui va ouvrir le documents puis on va recherche le mot puis le modifier.
Mais selon le type de fichier ca ne marche pas forcément.

En autoit, je ne sais pas.

A moins d'ouvrir le fichier et d'automatiser la fonction remplacer? ou existe-t'il une autre solution?
Je ne demande pas de me faire le script mais me dire les bonnes fonctions à utiliser.
J'ai trouvé la fonction StringReplace mais comment puis-je dire à mon script de relire les fichiers pour modifier le reste?
Avatar du membre
mikell
Spammer !
Spammer !
Messages : 6292
Enregistré le : dim. 29 mai 2011 17:32
Localisation : Deep Cévennes
Status : Hors ligne

Re: [..] Lancer une application placé dans le systray

#23

Message par mikell »

Loulou63 a écrit :Je ne demande pas de me faire le script mais me dire les bonnes fonctions à utiliser
#Include <File.au3>
_ReplaceStringInFile() pour les lignes concernées

PS: vous devriez être cool avec le patron il est sanguin (d'autant que là admettez qu'il n'a pas tout à fait tort) :wink:
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
Loulou63
Niveau 4
Niveau 4
Messages : 51
Enregistré le : lun. 22 août 2011 10:58
Status : Hors ligne

Re: [..] Lancer une application placé dans le systray

#24

Message par Loulou63 »

Je pense être respectueux des autres. Et je n'apprécie pas qu'on m'envoie chier pour un oui ou pour un nom.

Je respecte le travail de chacun et qu'on respecte mes demandes.

Merci en tout cas pour ta réponse. Je vais regarder ta solution. Cette commande va tourner jusqu'à ce qu'une modification se fasse. Je vais trouver un truc pour que le script effectue les modifications en 1 seul fois. Peut-être un while avec le nombre modifications. Je vous tiendrai au courant.
Avatar du membre
PandiPanda
Membre émérite
Membre émérite
Messages : 656
Enregistré le : mar. 19 juil. 2011 14:03
Localisation : Bruxelles
Status : Hors ligne

Re: [..] Lancer une application placé dans le systray

#25

Message par PandiPanda »

Pourquoi vous n'utilisé simplement pas le FileRead() et le FileWrite() ?
il vous suffirai de lire le contenu du fichier, la stockée dans une variable, effectuer les actions que vous voulez, et vous réecrivez le fichier?

le problème avec _ReplaceStringInFile() est qu'il ouvre et ferme le fichier pour chaque "remplacement"
enfin je pense :P
La seule moralité qui tienne dans un monde cruel est la chance. Impartiale. Équitable. Vraie
Loulou63
Niveau 4
Niveau 4
Messages : 51
Enregistré le : lun. 22 août 2011 10:58
Status : Hors ligne

Re: [..] Lancer une application placé dans le systray

#26

Message par Loulou63 »

Je restais sur mon problème de modifications de fichiers par vbs que je me suis dit que la fonction FileRead d'AutoIT n'allait pas marcher.
Mais la fonction FileRead arrive à lire les 2 fichiers de config en entier.
Savez-vous si on peux effectuer plusieurs modifications en ouvrant qu'une fois le fichier. Si vous ne le savez pas, ce n'est pas un souci. Je testerai et je vous ferai un retour.
Avatar du membre
PandiPanda
Membre émérite
Membre émérite
Messages : 656
Enregistré le : mar. 19 juil. 2011 14:03
Localisation : Bruxelles
Status : Hors ligne

Re: [..] Lancer une application placé dans le systray

#27

Message par PandiPanda »

En utilisant le FileOpen() je pense que vous n'ouvrez qu'une seule fois le fichier pour lecture/écriture
mais pas sûr :oops:

pour les remplacements vous avez tout une gamme de choix :P
La seule moralité qui tienne dans un monde cruel est la chance. Impartiale. Équitable. Vraie
Avatar du membre
mikell
Spammer !
Spammer !
Messages : 6292
Enregistré le : dim. 29 mai 2011 17:32
Localisation : Deep Cévennes
Status : Hors ligne

Re: [..] Lancer une application placé dans le systray

#28

Message par mikell »

PandiPanda a écrit :mais pas sûr :oops:
Prudent le panda mais de fait la prudence est de rigueur... :mrgreen:
Fichier d'aide a écrit :When reading and writing via the same file handle, the FileSetPos() function must be used to update the current file position.
......
Using FileSetPos() it is possible to both read and write to the same file. When attempting to read and write to the same file, always call FileFlush() between each write and read operation.
Moving the pointer to the middle of the data can be used to overwrite data.
Avec _ReplaceStringInFile() c'est la fonction qui fait les manoeuvres délicates à ta place (moins de risque de se planter)
" 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
Tlem
Site Admin
Site Admin
Messages : 11796
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [..] Lancer une application placé dans le systray

#29

Message par Tlem »

Loulou63 a écrit :Je pense être respectueux des autres. Et je n'apprécie pas qu'on m'envoie chier pour un oui ou pour un nom.
Si vous l’étiez, vous m’auriez écouté.
Je vous ai déjà fait 3 remarques gentillettes, donc au bout d'un moment il est normal que je soit plus clair dans mes propos !
Et je ne pense pas vous avoir envoyé chier à un quelconque moment. C'est jusque que pour que l'on puisse vous aider, c'est à vous de faire ce qu'il faut pour nous donner les éléments et non à nous de pleurer des indices sur ce que vous voulez faire.
Loulou63 a écrit :Je respecte le travail de chacun et qu'on respecte mes demandes.
Ce forum est le travail de plusieurs personnes.
En dupliquant les messages des autres dans vos réponses, vous rendez le sujet moins clair et plus dur à suivre, sans compter la place occupée inutilement dans la base de donnée.

Sinon, pour en revenir à vos moutons. Les solutions qui vous ont été apportées me semble une bonne ébauche, mais vous allez vite vous retrouver confronté à d'autres problèmes.

Je vous propose quelque chose de plus simple.
1 - Vous dupliquez le fichier de configuration (pour pouvoir travailler tranquillement dessus, mais ce n'est pas obligatoire).

2 - Vous rajoutez une ligne en début de fichier ([Config]). Hé oui, votre fichier de configuration, ressemble étrangement à un fichier .ini, sauf qu'il n'à pas de section. Donc créez là, comme cela vous pourrez utiliser les fonctions des fichiers .ini.

3 - Modifiez tranquillement vos options avec IniWrite().

4 - Supprimez la première ligne, puis remplacez le fichier original par celui modifié (si vous avez utilisé une copie du fichier original).

5 - Hé voilà, c'est aussi simple que ça.


Edit : Voilà ce que cela donne en code AutoIt :
► Afficher le texte
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
mikell
Spammer !
Spammer !
Messages : 6292
Enregistré le : dim. 29 mai 2011 17:32
Localisation : Deep Cévennes
Status : Hors ligne

Re: [..] Lancer une application placé dans le systray

#30

Message par mikell »

Ha oué oué, pas con l'histoire du fichier ini... didiou j'lavais pô vu :oops:
Un coup de IniReadSection,
Une fonction String dans une boucle For pour reconnaître la ligne,
Un coup de IniWrite pour la modifier...
Limpide Image
" 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
Tlem
Site Admin
Site Admin
Messages : 11796
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [..] Lancer une application placé dans le systray

#31

Message par Tlem »

Et même plus simple que vous pensez (voyez le code).
Cela évitera de fabriquer son propre Wrapper ...
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é".
Loulou63
Niveau 4
Niveau 4
Messages : 51
Enregistré le : lun. 22 août 2011 10:58
Status : Hors ligne

Re: [..] Lancer une application placé dans le systray

#32

Message par Loulou63 »

Il est vrai que je peut être tête en l'air mais ça n'a pas pour but d'agacer.
Voila pour cette parenthèse qui est close pour moi.

Merci pour vos solutions qui me ravie. Je ne savez pas qu'une fonction existait spécialement pour un type de fichier précis. C'est parfait. Je vais en faire de même pour le fichier .lst en le transformant en .ini puis en .lst à la fin ca va me faire gagner du temps.

J'ai mis de coté le tutoriel car pour de choses à faire coté professionnel. Mais je m'y remettrai dès que cette charge sera terminé. Et cette fois-ci, j'aiderai les autres :D
Avatar du membre
mikell
Spammer !
Spammer !
Messages : 6292
Enregistré le : dim. 29 mai 2011 17:32
Localisation : Deep Cévennes
Status : Hors ligne

Re: [..] Lancer une application placé dans le systray

#33

Message par mikell »

Tlem a écrit :Et même plus simple que vous pensez (voyez le code).
Hé ben, reprendre le boulot me réussit pas :shock:
J'avais (aussi) zappé le IniWrite appliqué d'emblée... :oops:
Loulou63 a écrit :Je ne demande pas de me faire le script ...
Tlem s'est laissé aller... très joli script :mrgreen:
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
Répondre