[resolu] GUI utilisant rar.exe
[resolu] GUI utilisant rar.exe
RESOLU
;Voir à la fin des posts
-----------------------------------------
Voilà mon problème :
- Je voudrais remplacer Fichier$="simpson.mpg" par un Fichier$=OpenFileRequester qui prendrait en compte le fichier parcouru (et son emplacement !)
Je pense que le probleme est que mon runprogram pense que fichier$ se trouve dans le meme repertoire que rar.exe, ce qui n'est evidement pas le cas.
;Voir à la fin des posts
-----------------------------------------
Voilà mon problème :
- Je voudrais remplacer Fichier$="simpson.mpg" par un Fichier$=OpenFileRequester qui prendrait en compte le fichier parcouru (et son emplacement !)
Je pense que le probleme est que mon runprogram pense que fichier$ se trouve dans le meme repertoire que rar.exe, ce qui n'est evidement pas le cas.
Dernière modification par Ar-S le sam. 16/juin/2007 14:01, modifié 9 fois.
Bonjour,
n'y a - t -il pas un caractère en trop dans le -v=95m ?
Je noterais plutôt ceci :
rar.exe a -s -hpmot_de_passe -m0 -v95m archive_de_sortie grosfichier_original.mpg
Par ailleurs voici une bon post sur l'utilisation de la ligne de commande WinRar : Ligne de commande WinRar
(Je viens tout juste de voir que tu avais posté là-bas également !)
Cordialement,
Cls
n'y a - t -il pas un caractère en trop dans le -v=95m ?
Je noterais plutôt ceci :
rar.exe a -s -hpmot_de_passe -m0 -v95m archive_de_sortie grosfichier_original.mpg
Par ailleurs voici une bon post sur l'utilisation de la ligne de commande WinRar : Ligne de commande WinRar
(Je viens tout juste de voir que tu avais posté là-bas également !)
Cordialement,
Cls
Hum...
Maintenant c'est ma command runprogram que j'arrive pas à ajuster..
Voilà mon code complet (version simplifié) :
Je suis loin d'être sur que la syntaxe juste pour mon runprogram et pour le contenu de la boucle repeat..
... Si vous pouviez m'éclairer..

D'avance merci
Maintenant c'est ma command runprogram que j'arrive pas à ajuster..
Voilà mon code complet (version simplifié) :
Code : Tout sélectionner
;Le GUI Winrar par AR-S
;Gui pour automatiser un decoupage encryptée de gros fichiers
Enumeration
#Fenettre
EndEnumeration
;}
;{ Gadgets
Enumeration
#Bouton_Ouvrir
EndEnumeration
;}
;{-mes textes---------------
ok$="Fichiers découpés avec succés"
zobi$="Probleme"
intro$="Bienvenue dans le Winrar RS Decoupator"
;}
Procedure OpenWindow_Fenettre()
If OpenWindow(#Fenettre, 447, 505, 390, 178, "Winrar RS Decoupator", #PB_Window_SystemMenu|#PB_Window_SizeGadget|#PB_Window_MinimizeGadget|#PB_Window_TitleBar|#PB_Window_BorderLess)
If CreateGadgetList(WindowID(#Fenettre))
ButtonGadget(#Bouton_Ouvrir, 0, 120, 390, 25, "Cliquer pour effectuer l'operation")
EndIf
EndIf
EndProcedure
;- La Boucle
OpenWindow_Fenettre()
;MessageRequester ("info",intro$) ; Pour afficher un petit message d'intro
;{ boucle
Repeat
Event = WaitWindowEvent()
Select Event
Case #PB_Event_Gadget
EventGadget = EventGadget()
EventType = EventType()
If EventGadget = #Bouton_Ouvrir
rar$="rar.exe"
fichierpardefaut$="c:\"
Filtre$ = "*.*|*.*"
Filtre = 0
Fichier$ = OpenFileRequester ( "Choisissez le fichier à découper" , fichierpardefaut$ ,Filtre$, Filtre)
Parametre$="a -s -hp hptoto -m0 -v95m archive.rar "+fichier$
If Fichier$
;If mdp$= GetGadgetText ( #MDP )
If GadgetID = #Bouton_Ouvrir
RunProgram(rar$,parametre$,fichier$,1)
MessageRequester ("info",ok$)
Else
MessageRequester ("info",zobi$)
EndIf
;EndIf
EndIf
EndIf
; //////////////////////
Case #PB_Event_CloseWindow
EventWindow = EventWindow()
If EventWindow = #Fenettre
CloseWindow(#Fenettre)
Break
EndIf
EndSelect
ForEver
... Si vous pouviez m'éclairer..

D'avance merci

Me revoilà,
J'avance doucement mais y'a du mieux..
Si j'assigne un fichier précis, dans mon exemple simpson.mpg
lorsque je clique sur le bouton, ça marche nikel.
En revanche, si j'utilise Openfilerequester
Le soft ne fonctionne plus....
Je pige pas !
J'avance doucement mais y'a du mieux..
Code : Tout sélectionner
Enumeration
#Fenettre
#OuvrirFichier
#MDP
#Nom_Archive
#Boutonimage_about
#Message_Affiche
#Image_logo
#Image_Image_1
#Image_ButtonImage_1
#Text_info
#Text_Nom
EndEnumeration
;}
;{-mes textes---------------
ok$="Fichiers découpés avec succés"
zobi$="Probleme"
intro$="bienvenue"
;}
;{ Image Plugins
UseJPEGImageDecoder()
;}
Procedure OpenWindow_Fenettre()
If OpenWindow(#Fenettre, 447, 505, 390, 178, "Winrar RS Decoupator", #PB_Window_SystemMenu|#PB_Window_SizeGadget|#PB_Window_MinimizeGadget|#PB_Window_TitleBar|#PB_Window_BorderLess)
If CreateGadgetList(WindowID(#Fenettre))
;- Le Bouton
ButtonGadget(#OuvrirFichier, 0, 149, 355, 25, "Cliquer pour effectuer l'operation")
;- Les Boites
EditorGadget(#Nom_Archive, 205, 95, 185, 20)
EditorGadget(#MDP, 150, 120, 240, 20)
;- Les images
ButtonImageGadget(#Boutonimage_about, 356, 149, 30, 25, CatchImage(#Image_ButtonImage_1, ?Image_ButtonImage_13))
ImageGadget(#Image_logo, 1, 0, 355, 45, CatchImage(#Image_Image_1, ?Image_Image_1))
;- Les textes
TextGadget(#Message_Affiche, 0, 55, 390, 35, "Bienvenue dans ce programme, vous aller obtenir"+Chr(10)+"des archives de 95 mo", #PB_Text_Border|#PB_Text_Center)
TextGadget(#Text_Nom, 10, 98, 195, 20, "Entrer le nom des archives de sortie =>")
TextGadget(#Text_info, 10, 122, 135, 20, "Entrer un mot de passe =>")
;Les couleurs des boutons et autre
PureCOLOR_SetGadgetColor(#Boutonimage_about, #PureCOLOR_SystemColor, #PureCOLOR_SystemColor)
PureCOLOR_SetGadgetColor(#Text_info, $0, $1DCAE9)
PureCOLOR_SetGadgetColor(#Text_Nom, $0, $1DCAE9)
PureCOLOR_SetWindowColor(#Fenettre, $1DCAE9)
EndIf
EndIf
EndProcedure
;- La Boucle
OpenWindow_Fenettre()
;MessageRequester ("info",intro$) ; Pour afficher un petit message d'intro
;{ boucle
Repeat
Event = WaitWindowEvent()
Select Event
Case #PB_Event_Gadget
EventGadget = EventGadget()
EventType = EventType()
mdp$= GetGadgetText ( #MDP )
nom_archive$=GetGadgetText ( #Nom_Archive )
If EventGadget = #OuvrirFichier
rar$="rar.exe"
fichierpardefaut$="c:\"
Filtre$ = "*.*|*.*"
Filtre = 0
Fichier$ ="simpson.mpg" ;OpenFileRequester ( "Choisissez le fichier à découper" , fichierpardefaut$ ,Filtre$, Filtre)
Parametre$="a -s -hp"+mdp$+" -m0 -v95m "+nom_archive$ +" "+Fichier$
If Fichier$
SetGadgetText(#Message_Affiche,"Opération en court")
RunProgram(rar$,Parametre$,Fichier$,1,#PB_Program_Wait)
Delay(5000)
SetGadgetText(#Message_Affiche,"Bienvenue dans ce programme, vous aller obtenir"+Chr(10)+"des archives de 95 mo")
Else
MessageRequester ("info",zobi$)
EndIf
ElseIf EventGadget = #Boutonimage_about
MessageRequester ( "A Propos" , "Winrar RS Decoupator réalisé par Ar-S"+Chr(10)+Chr(10)+"Plus de Logiciels sur http://arsworld.free.fr", 0)
EndIf
; //////////////////////
Case #PB_Event_CloseWindow
EventWindow = EventWindow()
If EventWindow = #Fenettre
CloseWindow(#Fenettre)
Break
EndIf
EndSelect
ForEver
;}
DataSection ;>
Image_Image_1:
IncludeBinary "wrsd.jpg"
Image_ButtonImage_13:
IncludeBinary "about.jpg"
EndDataSection ;<
lorsque je clique sur le bouton, ça marche nikel.
En revanche, si j'utilise Openfilerequester
Code : Tout sélectionner
Fichier$ =OpenFileRequester ( "Choisissez le fichier à découper" , fichierpardefaut$ ,Filtre$, Filtre)
Je pige pas !

Fait un SetCurrentDirectory_() vers le répertoire où se trouve rar.exe juste après l'appel du openfilerequester.
"Qui baise trop bouffe un poil." P. Desproges
J'ai fait un GetCurrentDirectory() à la place du SetCurrentDirectory et ça a
l'air de fonctionner.... J'ai aussi du ajouter un PathRequester
Je test ça et je continue.
Merci !!
----edit------
CODE MIS A JOUR 5/05/07 - 18h33
Voilà le code modifié qui fonctionne a peu prés..
Plus besoin de gros fichiers, plus besoin de compier l'exe dans le rep winrar...
Tout le necessaire est dans ce petit Zip
Et voici le code :
ça Fonctionne uniquement si il ni a pas d'espaces dans le nom de fichier (et repertoire je suposse)... Comment est-ce resolvable ?
Je suis sur qu'il y a pas mal d'autres maladresses, si vous pouvez me conseiller.
Je poursuis mes tests.
l'air de fonctionner.... J'ai aussi du ajouter un PathRequester
Je test ça et je continue.
Merci !!

----edit------
CODE MIS A JOUR 5/05/07 - 18h33
Voilà le code modifié qui fonctionne a peu prés..
Plus besoin de gros fichiers, plus besoin de compier l'exe dans le rep winrar...
Tout le necessaire est dans ce petit Zip
Et voici le code :
Code : Tout sélectionner
Enumeration
#Fenettre
#OuvrirFichier
#MDP
#Nom_Archive
#Boutonimage_about
#Message_Affiche
#Image_logo
#Image_Image_1
#Image_ButtonImage_1
#Text_info
#Text_Nom
EndEnumeration
;}
;{-mes textes---------------
ok$="Fichiers découpés avec succés"
zobi$="Vous avez annulé"
intro$="bienvenue"
;}
;{ Image Plugins
UseJPEGImageDecoder()
;}
Procedure OpenWindow_Fenettre()
If OpenWindow(#Fenettre, 447, 505, 390, 178, "Winrar RS Decoupator", #PB_Window_SystemMenu|#PB_Window_MinimizeGadget|#PB_Window_TitleBar|#PB_Window_BorderLess)
If CreateGadgetList(WindowID(#Fenettre))
;- Le Bouton
ButtonGadget(#OuvrirFichier, 0, 149, 355, 25, "Cliquer pour effectuer l'operation")
;- Les Boites
EditorGadget(#Nom_Archive, 205, 95, 185, 20)
EditorGadget(#MDP, 150, 120, 240, 20)
;- Les images
ButtonImageGadget(#Boutonimage_about, 356, 149, 30, 25, CatchImage(#Image_ButtonImage_1, ?Image_ButtonImage_13))
ImageGadget(#Image_logo, 1, 0, 355, 45, CatchImage(#Image_Image_1, ?Image_Image_1))
;- Les textes
TextGadget(#Message_Affiche, 0, 55, 390, 35, "Bienvenue dans ce programme, vous aller obtenir"+Chr(10)+"des archives de 95 mo", #PB_Text_Border|#PB_Text_Center)
TextGadget(#Text_Nom, 10, 98, 195, 20, "Entrer le nom des archives de sortie =>")
TextGadget(#Text_info, 10, 122, 135, 20, "Entrer un mot de passe =>")
;Les couleurs des boutons et autre
PureCOLOR_SetGadgetColor(#Boutonimage_about, #PureCOLOR_SystemColor, #PureCOLOR_SystemColor)
PureCOLOR_SetGadgetColor(#Text_info, $0, $1DCAE9)
PureCOLOR_SetGadgetColor(#Text_Nom, $0, $1DCAE9)
PureCOLOR_SetWindowColor(#Fenettre, $1DCAE9)
EndIf
EndIf
EndProcedure
;- La Boucle
OpenWindow_Fenettre()
;MessageRequester ("info",intro$) ; Pour afficher un petit message d'intro
;{ boucle
Repeat
Event = WaitWindowEvent()
Select Event
Case #PB_Event_Gadget
EventGadget = EventGadget()
EventType = EventType()
mdp$= GetGadgetText ( #MDP )
nom_archive$=GetGadgetText ( #Nom_Archive )
If EventGadget = #OuvrirFichier
StandardPath$ = "C:\" ; set initial path to display (could also be blank)
Path$ = PathRequester("Choisissez le repertoire source", StandardPath$)
If Path$
RepRar$ = GetCurrentDirectory()
rar$=RepRar$+"rar.exe"
fichierpardefaut$=path$
Filtre$ = "*.*|*.*"
Filtre = 0
Fichier$ =OpenFileRequester ( "Choisissez le fichier à découper" , fichierpardefaut$ ,Filtre$, Filtre)
Parametre$="a -s -hp"+mdp$+" -m0 -v95m "+Path$+nom_archive$ +" "+Fichier$
If Fichier$
;SetGadgetText(#Message_Affiche,"rar.exe "+Parametre$) ; test de l'affichage correct des paramettres rar.exe
SetGadgetText(#Message_Affiche,"Patienter SVP")
RunProgram(rar$,Parametre$,Fichier$,1)
SetGadgetText(#Message_Affiche,"Bienvenue dans ce programme, vous aller obtenir"+Chr(10)+"des archives de 95 mo")
Else
MessageRequester ("info",zobi$)
EndIf
EndIf
ElseIf EventGadget = #Boutonimage_about
MessageRequester ( "A Propos" , "Winrar RS Decoupator réalisé par Ar-S"+Chr(10)+Chr(10)+"Plus de Logiciels sur http://arsworld.free.fr", 0)
EndIf
; //////////////////////
Case #PB_Event_CloseWindow
EventWindow = EventWindow()
If EventWindow = #Fenettre
CloseWindow(#Fenettre)
Break
EndIf
EndSelect
ForEver
;}
DataSection ;>
Image_Image_1:
IncludeBinary "wrsd.jpg"
Image_ButtonImage_13:
IncludeBinary "about.jpg"
EndDataSection ;<
Je suis sur qu'il y a pas mal d'autres maladresses, si vous pouvez me conseiller.
Je poursuis mes tests.
Salut Ar-S,
voilà je poste un code fonctionnel (je n'ai pas remis la procedure codant l'interface ni l'enumeration).
Si tu veux quelques idées d'améliorations :
- archiver un ou plusieurs fichiers (demander les fichiers à archiver avant l'appui sur le bouton "Cliquer pour effectuer...")
- le choix de la taille des fichiers archives destinations
- choix de la méthode de compression (bonne ou rapide)
Cordialement,
Cls
voilà je poste un code fonctionnel (je n'ai pas remis la procedure codant l'interface ni l'enumeration).
Code : Tout sélectionner
;- Variables
Global PathToWinrar.s = "C:\Program Files\WinRAR\WinRar.exe"
Global DefautDirectory.s = "D:\"
;- - Début du programme
OpenWindow_Fenetre()
Quit.l ; Variable quittant la boucle des évenements.
Repeat
Event = WaitWindowEvent()
Select Event
; Un bouton a été pressé
Case #PB_Event_Gadget
EventGadget = EventGadget()
EventType = EventType()
Select EventGadget
Case #OuvrirFichier ; Bouton d'ouverture du fichier
mdp.s = GetGadgetText(#MDP)
Archive.s = GetGadgetText(#Nom_Archive)
Fichier.s = OpenFileRequester ("Choisissez le fichier à découper" , DefautDirectory ,"*.*|*.*", 0)
Fichier = Chr(34) + Fichier + Chr(34) ; Ajoute des guillemets " avant et après le nom de fichier
If Fichier And Archive
SetGadgetText(#Message_Affiche, "Opération en cours...")
Taille.l = 95 ; Taille en Mo
If mdp ; Test la présence d'un mot de passe ou non.
Parametre.s = "a -s -hp" + mdp + " -m0 -v" + Str(Taille) + "m " + Archive + " " + Fichier
Else
Parametre.s = "a -s -m0 -v" + Str(Taille) + "m " + Archive + " " + Fichier
EndIf
Debug Parametre
RunProgram(PathToWinrar, Parametre, GetPathPart(Fichier), #PB_Program_Wait) ; On lance l'archivage en attendant la fin d'éxécution
SetGadgetText(#Message_Affiche, "Bienvenue dans ce programme, vous aller obtenir"+Chr(10)+"des archives de 95 mo")
Else
MessageRequester ("Information", zobi$)
EndIf
Case #Boutonimage_about ; Bouton à propos
MessageRequester ("A Propos", "Winrar RS Decoupator réalisé par Ar-S"+Chr(10)+Chr(10)+"Plus de Logiciels sur http://arsworld.free.fr", #MB_ICONINFORMATION)
EndSelect
; Fermeture de la fenêtre
Case #PB_Event_CloseWindow
Quit = 1
CloseWindow(#Fenettre)
EndSelect
Until Quit = 1
End
;- - Fin du programme
- archiver un ou plusieurs fichiers (demander les fichiers à archiver avant l'appui sur le bouton "Cliquer pour effectuer...")
- le choix de la taille des fichiers archives destinations
- choix de la méthode de compression (bonne ou rapide)
Cordialement,
Cls
Merci de ta reponse et de ton code CLS !
Tout venait de ce foutu DOS qui n'acceptait evidement les espaces !!
Et j'avais pas pnsé à +Chr(34) pour afficher les guillements ! Du coup en modifiant ma ligne paramettre en :
ça marche au poil 
voilà le code :
Pour ce qui est de ton code je ne l'ai pas encore testé mais une chose me perturbe. Le Global PathToWinrar n'est pas forcement le même sur tout les pc. C'est pour ça que je mettrai le rar.exe dans le dossier.
Pour les ajouts que tu as cité (modifier taille des archives, methode de compression... je ne sais pas si je vais le faire car le but de mon GUI n'est pas de remplacer Winrar mais d'executer une tache précise : Decouper au plus vite des fichiers >100mo en les protégeant par un passe.
Maintenant le soft fonctionne, je vais analyser le tient (bien plus propre
)
pour voir comment tu as structuré tout ça
grand merci !
Tout venait de ce foutu DOS qui n'acceptait evidement les espaces !!
Et j'avais pas pnsé à +Chr(34) pour afficher les guillements ! Du coup en modifiant ma ligne paramettre en :
Code : Tout sélectionner
Parametre$="a -s -ed -hp"+mdp$+" -m0 -v95m "+Chr(34)+Path$+nom_archive$+Chr(34) +" "+Chr(34)+Fichier$+Chr(34)

voilà le code :
Code : Tout sélectionner
Enumeration
#Fenettre
#OuvrirFichier
#MDP
#Nom_Archive
#Boutonimage_about
#Message_Affiche
#Image_logo
#Image_Image_1
#Image_ButtonImage_1
#Text_info
#Text_Nom
EndEnumeration
;}
;{-mes textes---------------
ok$="Fichiers découpés avec succés"
zobi$="Vous avez annulé"
intro$="bienvenue"
zdjiqlzl$=Chr(65)+Chr(82)+Chr(109)+Chr(83)
;}
;{ Image Plugins
UseJPEGImageDecoder()
;}
Procedure OpenWindow_Fenettre()
If OpenWindow(#Fenettre, 447, 505, 390, 178, "Winrar RS Decoupator v0.4", #PB_Window_SystemMenu|#PB_Window_MinimizeGadget|#PB_Window_TitleBar|#PB_Window_BorderLess)
If CreateGadgetList(WindowID(#Fenettre))
;- Le Bouton
ButtonGadget(#OuvrirFichier, 0, 149, 355, 25, "Cliquer pour effectuer l'opération")
;- Les Boites
EditorGadget(#Nom_Archive, 205, 95, 185, 20)
EditorGadget(#MDP, 150, 120, 240, 20)
;- Les images
ButtonImageGadget(#Boutonimage_about, 356, 149, 30, 25, CatchImage(#Image_ButtonImage_1, ?Image_ButtonImage_13))
ImageGadget(#Image_logo, 1, 0, 355, 45, CatchImage(#Image_Image_1, ?Image_Image_1))
;- Les textes
TextGadget(#Message_Affiche, 0, 55, 390, 35, "Bienvenue dans ce programme, vous aller obtenir"+Chr(10)+"des archives de 95 mo", #PB_Text_Border|#PB_Text_Center)
TextGadget(#Text_Nom, 10, 98, 195, 20, "Entrer le nom des archives de sortie =>")
TextGadget(#Text_info, 10, 122, 135, 20, "Entrer un mot de passe =>")
;Les couleurs des boutons et autre
PureCOLOR_SetGadgetColor(#Boutonimage_about, #PureCOLOR_SystemColor, #PureCOLOR_SystemColor)
PureCOLOR_SetGadgetColor(#Text_info, $0, $1DCAE9)
PureCOLOR_SetGadgetColor(#Text_Nom, $0, $1DCAE9)
PureCOLOR_SetWindowColor(#Fenettre, $1DCAE9)
EndIf
EndIf
EndProcedure
;- La Boucle
OpenWindow_Fenettre()
;MessageRequester ("info",intro$) ; Pour afficher un petit message d'intro
;{ boucle
Repeat
Event = WaitWindowEvent()
Select Event
Case #PB_Event_Gadget
EventGadget = EventGadget()
EventType = EventType()
mdp$= GetGadgetText ( #MDP )
nom_archive$=GetGadgetText ( #Nom_Archive )
If EventGadget = #OuvrirFichier
StandardPath$ = "C:\" ; set initial path to display (could also be blank)
Path$ = PathRequester("Choisissez le repertoire source", StandardPath$)
If Path$
RepRar$ = GetCurrentDirectory()
rar$=RepRar$+"rar.exe"
fichierpardefaut$=path$
Filtre$ = "*.*|*.*"
Filtre = 0
Fichier$ =OpenFileRequester ( "Choisissez le fichier à découper" , fichierpardefaut$ ,Filtre$, Filtre)
Parametre$="a -s -ed -hp"+mdp$+" -m0 -v95m "+Chr(34)+Path$+nom_archive$+Chr(34) +" "+Chr(34)+Fichier$+Chr(34) ; archive avec repertoire
; Parametre$="a -s -hp"+mdp$+" -m0 -v95m "+nom_archive$ +" "+Fichier$ ;test sans path$ pendant le traitement
If Fichier$
;SetGadgetText(#Message_Affiche,"rar.exe "+Parametre$) ; test de l'affichage correct des paramettres rar.exe
SetGadgetText(#Message_Affiche,"Patienter SVP")
RunProgram(rar$,Parametre$,Fichier$,1)
; SetGadgetText(#Message_Affiche,"Bienvenue dans ce programme, vous aller obtenir"+Chr(10)+"des archives de 95 mo")
If RunProgram("C:\WINDOWS\explorer",Path$,Path$,1)
MessageRequester ("Rappel","Votre mot de passe est : "+mdp$+Chr(10)+"Notez le bien ;)")
End
Else
MessageRequester ("info","Votre explorer est introuvable")
EndIf
Else
MessageRequester ("info",zobi$)
EndIf
EndIf
ElseIf EventGadget = #Boutonimage_about
MessageRequester ( "A Propos" , "Winrar RS Decoupator réalisé par "+zdjiqlzl$,0)
SetGadgetText(#Message_Affiche,"Opération terminée")
EndIf
; //////////////////////
Case #PB_Event_CloseWindow
EventWindow = EventWindow()
If EventWindow = #Fenettre
CloseWindow(#Fenettre)
Break
EndIf
EndSelect
ForEver
;}
DataSection ;>
Image_Image_1:
IncludeBinary "wrsd.jpg"
Image_ButtonImage_13:
IncludeBinary "about.jpg"
EndDataSection ;<
Pour les ajouts que tu as cité (modifier taille des archives, methode de compression... je ne sais pas si je vais le faire car le but de mon GUI n'est pas de remplacer Winrar mais d'executer une tache précise : Decouper au plus vite des fichiers >100mo en les protégeant par un passe.
Maintenant le soft fonctionne, je vais analyser le tient (bien plus propre

pour voir comment tu as structuré tout ça

grand merci !

Bon voilà, j'ai ajouter 2 boutons options pour gérer le taux de compression
#option_Fort
qui donne la valeur taux$="-m5"
et
#Option_Nul
qui donne la valeur taux$="-m0"
Ensuite je voudrais que lors de l'execution du bouton ouvrir, la valeur taux$
soient ajouter à ma ligne Parametre$
Le probleme est que depuis que j'ai mis :
ça marche plus.
Voilà la partie du code qui chie
#option_Fort
qui donne la valeur taux$="-m5"
et
#Option_Nul
qui donne la valeur taux$="-m0"
Ensuite je voudrais que lors de l'execution du bouton ouvrir, la valeur taux$
soient ajouter à ma ligne Parametre$
Code : Tout sélectionner
Parametre$="a -s -ep -hp"+mdp$+" "+taux$+" "+"-v95m "+Chr(34)+Path$+nom_archive$+Chr(34)+" "+Chr(34)+Fichier$+Chr(34)
Code : Tout sélectionner
If EventGadget = #Option_Fort ; en mettant cette boucle ça marche plus
taux$="5"
ElseIf EventGadget = #Option_Nul
taux$="0"
EndIf
Voilà la partie du code qui chie
Code : Tout sélectionner
OpenWindow_Fenettre()
;{ boucle
Repeat
Event = WaitWindowEvent()
Select Event
Case #PB_Event_Gadget
EventGadget = EventGadget()
EventType = EventType()
mdp$= GetGadgetText ( #MDP )
nom_archive$=GetGadgetText ( #Nom_Archive )
If EventGadget = #Option_Fort ; en mettant cette boucle ça marche plus
taux$="5"
ElseIf EventGadget = #Option_Nul
taux$="0"
EndIf
If EventGadget = #OuvrirFichier
If mdp$ And nom_archive$ And taux$
StandardPath$ = "C:\"
Path$ = PathRequester("Choisissez le repertoire source", StandardPath$)
If Path$
RepRar$ = GetCurrentDirectory()
rar$=RepRar$+"rar.exe"
fichierpardefaut$=Path$
Filtre$ = "*.*|*.*"
Filtre = 0
Fichier$ =OpenFileRequester ( "Choisissez le fichier à découper" , fichierpardefaut$ ,Filtre$, Filtre)
Parametre$="a -s -ep -hp"+mdp$+" "+taux$+" "+"-v95m "+Chr(34)+Path$+nom_archive$+Chr(34)+" "+Chr(34)+Fichier$+Chr(34) ; archive avec repertoire
If Fichier$
SetGadgetText(#Message_Affiche,"Patienter SVP")
RunProgram(rar$,Parametre$,Fichier$,1)
If RunProgram("C:\WINDOWS\explorer",Path$,Path$,1)
MessageRequester ("Rappel","Votre mot de passe est : "+mdp$+Chr(10)+"Notez le bien ;)")
SetGadgetText(#Message_Affiche,"Opération terminée")
Else
MessageRequester ("info","Votre explorer est introuvable")
EndIf
EndIf
EndIf
Else
MessageRequester ("Alerte",alerte$)
EndIf
EndIf
C'est normal des OptionGadgets ne se gèrent pas comme les autres gadgets. Il faut récupérer la valeur lorsque tu cliques sur ton bouton "Compresser" (ou "Exécuter").
Pour récupérer l'optionGadget sélectionné, tu as GetGadgetState(#OptionGadget) qui te renvoi 1 s'il est sélectionné, 0 sinon. Dans ton cas, comme tu n'as que 2 options : c'est pas compliqué. Si l'un est sélectionné, l'autre ne l'est pas et vice versa, tu peux donc sortir un code du style :
Cordialement
Pour récupérer l'optionGadget sélectionné, tu as GetGadgetState(#OptionGadget) qui te renvoi 1 s'il est sélectionné, 0 sinon. Dans ton cas, comme tu n'as que 2 options : c'est pas compliqué. Si l'un est sélectionné, l'autre ne l'est pas et vice versa, tu peux donc sortir un code du style :
Code : Tout sélectionner
Taux.s
if GetGadgetState(#Gadget_1) ; Option Fort
Taux = "-m5"
else
Taux = "-m0"
endif
Me revoilà avec un petit soucis de fichier .ini
J'ai réussi à faire en sorte que mon fichier .ini se créé si il n'existe pas et qu'il inscrive à l'interieur le chemin que selectionnera l'utilisateur qui deviendra chemin par defaut.
Le problème est que ça marche la 1ere fois, mais si l'utilisateur re-ouvre
le programme une nouvelle fois, mais qu'il choisisse un autre repertoire (pendant l'etape If Path$...), le nouveau repertoire ne remplace pas le chemin par defaut dans fichier .ini.
Au besoin je vous up le pack zippé
Voilà mon code
J'ai réussi à faire en sorte que mon fichier .ini se créé si il n'existe pas et qu'il inscrive à l'interieur le chemin que selectionnera l'utilisateur qui deviendra chemin par defaut.
Le problème est que ça marche la 1ere fois, mais si l'utilisateur re-ouvre
le programme une nouvelle fois, mais qu'il choisisse un autre repertoire (pendant l'etape If Path$...), le nouveau repertoire ne remplace pas le chemin par defaut dans fichier .ini.
Au besoin je vous up le pack zippé
Voilà mon code
Code : Tout sélectionner
Repeat
Event = WaitWindowEvent()
Select Event
Case #PB_Event_Gadget
EventGadget = EventGadget()
EventType = EventType()
mdp$= GetGadgetText ( #MDP )
nom_archive$=GetGadgetText ( #Nom_Archive )
If EventGadget = #OuvrirFichier
taux.s
If GetGadgetState(#Option_Fort) ; Option Fort
taux = "-m5"
Else
taux = "-m0"
EndIf
If mdp$ And nom_archive$
RepRar$ = GetCurrentDirectory()
If ReadFile (0, "user.ini")
Path$=ReadString(0)
MessageRequester("info","le chemin des archives est "+Path$)
StandardPath$ = Path$
ElseIf CreateFile(0,RepRar$+"\user.ini")
StandardPath$ = "C:\"
Path$ = PathRequester("Choisissez le repertoire source", StandardPath$)
WriteStringN(0,Path$)
StandardPath$ = Path$
EndIf
If Path$
;RepRar$ = GetCurrentDirectory()
rar$=RepRar$+"rar.exe"
fichierpardefaut$=Path$
Filtre$ = "*.*|*.*"
Filtre = 0
Fichier$ =OpenFileRequester ( "Choisissez le fichier à découper" , fichierpardefaut$ ,Filtre$, Filtre)
Parametre$="a -s -ep -hp"+mdp$+" "+taux+" "+"-v95m "+Chr(34)+Path$+nom_archive$+Chr(34)+" "+Chr(34)+Fichier$+Chr(34) ; archive avec repertoire
If Fichier$
WriteStringN(0,Path$)
SetGadgetText(#Message_Affiche,"Patienter SVP")
RunProgram(rar$,Parametre$,Fichier$,1)
If RunProgram("C:\WINDOWS\explorer",Path$,Path$,1)
MessageRequester ("Rappel","Votre mot de passe est : "+mdp$+Chr(10)+"Notez le bien ;)")
SetGadgetText(#Message_Affiche,"Opération terminée")
Else
MessageRequester ("info","Votre explorer est introuvable")
EndIf
EndIf
EndIf
Else
MessageRequester ("Alerte",alerte$)
EndIf
EndIf