Page 1 sur 1
[R] Interface pour modifier fichier .ini
Posté : mar. 01 juil. 2008 15:23
par DJSIR
Bonjour,
Je viens vous poser une petite question. J'ai découvert récament un petit soft apellé DCot Menu. C'est un petit script AutoIt, lanceur d'applications. C'etait l'outil idéal pour moi. Sachant qu'il était libre, j'ai pris le fichier source, j'ai modifié certaines choses, et cala marche. Ma question c'est :
Il y a un fichier ini avec la liste des applications a afficher dans le menu. Mais, j'aimerais faire une petite interface pour pouvoir modifier facilement ce fichier ini. Par exemple, A la ligne (je dis n'importe quoi) 3, il y a NAME= et dans l'interface, il y aura, Nom de l'application : et une case pour remplir. Merci d'avance pour ceux qui vont éssayer de m'aider
DJSIR

En pièce jointe je vous donne le fichier .ini
Re: [..] Interface pour modifier fichier .ini
Posté : mar. 01 juil. 2008 15:42
par jbnh
Bonjour DJSIR et bienvenu.
Il faut utiliser cette fonction ci:
Code : Tout sélectionner
IniWrite("myfile.ini", "section", "key", "this is a new value")
Par exemple, selon le fichier ini que tu as fournit, si je veux écrire dans [CSM] (qui est la section) et Parameters (qui est la key) il te suffit de faire.
Code : Tout sélectionner
IniWrite("liste.ini", "csm", "parameters", "this is a new value")
A toi apres de gérer ton interface comme tu le souhaites.
Tu en trouveras plus sur
la documentation traduite en francais.
Salut
Re: [..] Interface pour modifier fichier .ini
Posté : mar. 01 juil. 2008 17:04
par DJSIR
Merci jbnh.Mais je pense que tu as du mal comprendre le topo. Regarde, CSM c'est le nom du logiciel a afficher dans le petit menu dans la barre des taches. Donc du coup, je repose ma question mais différament, si vous pouviez me faire un petit code avec une fenetre, et des cases a remplir (si cela ne vous embete pas trop, pouviez vous directement marquer les noms...)
Fichier INI (avec comandes a remplir)
► Afficher le texte
[Application Name]
Executable=\Folder\Executable.exe
Parameters=CommandLine Parameters
WorkingDirectory=\WorkingDirectory
Author=Author's Name
Website=
http://www.website.com
[Nom de l'application]
Executable=Endroit
Parameters=Paramètres
WorkingDirectory=Dossier de travail
Author=Nom de l'auteur
Website=Site web
PS : jbnh tes applications sonts super, ca serait bien si tu continue a faire des petis utilitaires
Re: [..] Interface pour modifier fichier .ini
Posté : mar. 01 juil. 2008 17:24
par jbnh
si j'ai bien compris, avant de me lancer dans le code dans l'erreur, tu veux une interface qui t'écrive dans le ini chaque fois des blocs ainsi:
Code : Tout sélectionner
[Nom de l'application]
Executable=Endroit
Parameters=Paramètres
WorkingDirectory=Dossier de travail
Author=Nom de l'auteur
Website=Site web
avec les valeurs ent fonction de ce qu'a entré l'utilisateur
Re: [..] Interface pour modifier fichier .ini
Posté : mar. 01 juil. 2008 17:33
par DJSIR
Voila, Et l'application ressemblera a une sorte de formulaire.
Dans ce bloc tu remplis selon ton choix. Imagine tu veux un lanceur d'application et dans un fichier ini il y a un listing des applications a aficher dans le menu. Il y a le fichier du menu et donc il se sert de ce fichier ini pour afficer les app. Mais toi tu n'y connais rien aux ini machin. Tu ouvre cette interface et tu remplis les cases. Apres tu clique sur valider et come sa ya l'application qui s'affiche dans le menu.
Re: [..] Interface pour modifier fichier .ini
Posté : mar. 01 juil. 2008 17:51
par jbnh
► Afficher le textele code
Code : Tout sélectionner
#include <Constants.au3>
#include <GUIConstantsEx.au3>
GUICreate("ini add", 325, 220)
GUICtrlCreateLabel("Nom de l'application", 10, 10)
$info1 = GUICtrlCreateInput("", 120, 10, 180, 20)
;-------------------------------------------------------------------------------------
GUICtrlCreateLabel("Executable", 10, 40)
$info2 = GUICtrlCreateInput("", 120, 40, 180, 20)
;-------------------------------------------------------------------------------------
GUICtrlCreateLabel("Parameters", 10, 70)
$info3 = GUICtrlCreateInput("", 120, 70, 180, 20)
;-------------------------------------------------------------------------------------
GUICtrlCreateLabel("WorkingDirectory", 10, 100)
$info4 = GUICtrlCreateInput("", 120, 100, 180, 20)
;-------------------------------------------------------------------------------------
GUICtrlCreateLabel("Author", 10, 130)
$info5 = GUICtrlCreateInput("", 120, 130, 180, 20)
;-------------------------------------------------------------------------------------
GUICtrlCreateLabel("Website", 10, 160)
$info6 = GUICtrlCreateInput("", 120, 160, 180, 20)
;-------------------------------------------------------------------------------------
$btn1 = GUICtrlCreateButton("Ajouter", 10, 190, 80)
GUISetState(@SW_SHOW)
While 1
$msg = GUIGetMsg()
Select
Case $msg = $GUI_EVENT_CLOSE
ExitLoop
Case $msg = $btn1
$file = FileOpen("Liste.ini", 1)
If $file = -1 Then
MsgBox(0, "Error", "Unable to open file.")
Exit
EndIf
FileWriteLine($file, '[' & GUICtrlRead($info1) & ']' & @CRLF)
FileWriteLine($file, 'Executable=' & GUICtrlRead($info2) & @CRLF)
FileWriteLine($file, 'Parameters=' & GUICtrlRead($info3) & @CRLF)
FileWriteLine($file, 'WorkingDirectory=' & GUICtrlRead($info4) & @CRLF)
FileWriteLine($file, 'Author=' & GUICtrlRead($info5) & @CRLF)
FileWriteLine($file, 'Website=' & GUICtrlRead($info6) & @CRLF)
FileClose($file)
Msgbox(0,"ini add","Bien réussi")
ExitLoop
EndSelect
Wend
Voilà j'espère que ca correspondra à tes attentes.
Merci en ce qui concerne mes utilitaires mais le plus dure c'est encore de trouver une idée

Re: [..] Interface pour modifier fichier .ini
Posté : mar. 01 juil. 2008 18:33
par DJSIR
Merci c'est exactement ca. Derniere question, comment on peut mettre, pour le dossier ou est l'éxécutable et le dossier de travail un bouton "..." ou "browse" ou encore "parcourir"
Pour les idées tu pourrais faire un script qui fait un listing de tous les programes sur l'ordinateur, ou un soft pour activer ou désactiver le pare feu windows. Cela peut toujours etre utile

Re: [..] Interface pour modifier fichier .ini
Posté : mar. 01 juil. 2008 18:53
par jbnh
► Afficher le texte
Code : Tout sélectionner
#include <Constants.au3>
#include <GUIConstantsEx.au3>
GUICreate("ini add", 360, 220)
GUICtrlCreateLabel("Nom de l'application", 10, 10)
$info1 = GUICtrlCreateInput("", 120, 10, 180, 20)
;-------------------------------------------------------------------------------------
GUICtrlCreateLabel("Executable", 10, 40)
$info2 = GUICtrlCreateInput("", 120, 40, 180, 20)
$btn0 = GUICtrlCreateButton("...", 320, 40, 20, 20)
;-------------------------------------------------------------------------------------
GUICtrlCreateLabel("Parameters", 10, 70)
$info3 = GUICtrlCreateInput("", 120, 70, 180, 20)
;-------------------------------------------------------------------------------------
GUICtrlCreateLabel("WorkingDirectory", 10, 100)
$info4 = GUICtrlCreateInput("", 120, 100, 180, 20)
;-------------------------------------------------------------------------------------
GUICtrlCreateLabel("Author", 10, 130)
$info5 = GUICtrlCreateInput("", 120, 130, 180, 20)
;-------------------------------------------------------------------------------------
GUICtrlCreateLabel("Website", 10, 160)
$info6 = GUICtrlCreateInput("", 120, 160, 180, 20)
;-------------------------------------------------------------------------------------
$btn1 = GUICtrlCreateButton("Ajouter", 10, 190, 80)
GUISetState(@SW_SHOW)
While 1
$msg = GUIGetMsg()
Select
Case $msg = $GUI_EVENT_CLOSE
ExitLoop
Case $msg = $btn0
$Opened_File = FileOpenDialog("Icon files", "", "All exe files (*.exe)|All Files (*.*)",12)
GUICtrlSetData($info2, $Opened_File)
Case $msg = $btn1
$file = FileOpen("Liste.ini", 1)
If $file = -1 Then
MsgBox(0, "Error", "Unable to open file.")
Exit
EndIf
FileWriteLine($file, '[' & GUICtrlRead($info1) & ']' & @CRLF)
FileWriteLine($file, 'Executable=' & GUICtrlRead($info2) & @CRLF)
FileWriteLine($file, 'Parameters=' & GUICtrlRead($info3) & @CRLF)
FileWriteLine($file, 'WorkingDirectory=' & GUICtrlRead($info4) & @CRLF)
FileWriteLine($file, 'Author=' & GUICtrlRead($info5) & @CRLF)
FileWriteLine($file, 'Website=' & GUICtrlRead($info6) & @CRLF)
FileClose($file)
Msgbox(0,"ini add","Bien réussi")
ExitLoop
EndSelect
Wend
Dis moi si il te faut encore qqchose

Re: [..] Interface pour modifier fichier .ini
Posté : mar. 01 juil. 2008 19:14
par DJSIR
Exelent ce petit ini add... Par-contre le nom...
Moi je l'ai mis en Apps Launcher - ddpp (pour aDD er aPP(je viens de le trouver)). J'ai tout ce qui me faut. Il manque plus que l'icone, et je referai la fenetre un peu au style de celle de Windoze quand on formate une clé USB. Je la metterai sur le forum et je passerait au dessus de ta derniere application

.
Sachant que je ne suis pas fortiche en AutoIt je vais encore te poser des questions... ^_^
Déja comment restyler la fenetre ?
Après Voila le script en desous. Il faudrais, pouvoir, mettre justement ini add dedans...
Et pour la fenetre il faudrais ajouter un bouton annuler ou quitter pour que ajouter ne soit pas tout seul ^_^
Re: [..] Interface pour modifier fichier .ini
Posté : mar. 01 juil. 2008 19:37
par jbnh
pour restyler tes fenêtre c'est pas encore trop possible même si le sujet a déja été traité
ici.
Pour un boutton annuler tout bêtement:
Code : Tout sélectionner
$btn1 = GUICtrlCreateButton ("Annuler ", 354, 70, 80)
While 1
$msg = GUIGetMsg()
Select
Case $msg = $btn1
ExitLoop
EndSelect
Wend
Re: [..] Interface pour modifier fichier .ini
Posté : mar. 01 juil. 2008 21:45
par DJSIR
re jbnh; Question, comment revenir a la ligne a la boite de massage... Enfin a Nom de l'application : mettre a la ligne la boite ou on tape
Re: [..] Interface pour modifier fichier .ini
Posté : mar. 01 juil. 2008 21:59
par jbnh
je ne comprend pas, essaye de te débrouiller pour le reste avec le doc, si vraiment ca va pas donne ton msn.
Re: [..] Interface pour modifier fichier .ini
Posté : sam. 05 juil. 2008 03:53
par arrkhan
DJSIR bonjour, si cela peut t'interresser je code actuellement un lanceur egalement basé sur DCoT mais largement modifié, il integrera egalement une interface de gestion des applications sur la cle, pour voir un visuel :
http://autoitscript.fr/forum/viewtopic.php?p=6777#p6777
Re: [..] Interface pour modifier fichier .ini
Posté : sam. 05 juil. 2008 10:55
par DJSIR
En faite j'ai l'interface mais maintenat c'est avec le lanceur que sa bugge. Il marchait bien avant pourtant...
Sinin je vai jeter un oeuil et je verrais je te tiens au courant. Si tu as besoin de l'interface regarde donc le super style que j'ai fait...
En plus je te le donne..
Re: [R] Interface pour modifier fichier .ini
Posté : sam. 05 juil. 2008 14:31
par timmalos
DJSIR a écrit :
Sujet du message: Re: [..] Interface pour modifier fichier .ini Répondre en citant le message
re jbnh; Question, comment revenir a la ligne a la boite de massage... Enfin a Nom de l'application : mettre a la ligne la boite ou on tape
Pour repondre à ta question, il suffit d'utiliser la macro @Crlf
Exemple: