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: