la fonction Copy de windows... ?
La syntaxe pour que cmd execute quelque chose est "cmd /c blabla".
Pour le faire avec pb, tu utilises OpenFileRequester() pour sélectionner tes fichiers (regarde l'aide), tu charges tes deux fichiers source avec readdata() et allocmem(), et tu les balances dans un fichier en sortie avec writedata().
Facile, non?
Tu ne peux pas le faire avec include puisque ce dernier sert à intégrer un fichier dans ton exécutable; pas à le charger dynamiquement lors de l'exécution. Faut pas tout mélanger!
Pour le faire avec pb, tu utilises OpenFileRequester() pour sélectionner tes fichiers (regarde l'aide), tu charges tes deux fichiers source avec readdata() et allocmem(), et tu les balances dans un fichier en sortie avec writedata().
Facile, non?
Tu ne peux pas le faire avec include puisque ce dernier sert à intégrer un fichier dans ton exécutable; pas à le charger dynamiquement lors de l'exécution. Faut pas tout mélanger!
Comme je l'ai dit plus haut,
Doit fonctionner mais ça ne marche pas !
Code : Tout sélectionner
parametres$="copy /B "+Chr(34)+image$+Chr(34)+" + "+Chr(34)+archive$+Chr(34)+" "+FichierSortie$
prg=RunProgram(copy$,parametres$,"",#PB_Program_Open) ; ,#PB_Program_Hide
If prg
; MessageRequester("OK","ça marche"+Chr(10)+copy$+" "+parametres$)
SetClipboardText(copy$+" "+parametres$)
endif
Doit fonctionner mais ça ne marche pas !
Je vais tenter de faire comme ça merci.tu charges tes deux fichiers source avec readdata() et allocmem(), et tu les balances dans un fichier en sortie avec writedata().
~~~~Règles du forum ~~~~
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
ce serai bien que tu prenne le temps de lire les posts avant de répondredjes a écrit :La syntaxe pour que cmd execute quelque chose est "cmd /c blabla".

voici ce que j'ai ecris un poil plus haut
Dobro a écrit :oui c'est bizarre !!
ceci apparemment fonctionne , mais aucune copie n'est effectué !![]()
Code : Tout sélectionner
prg=RunProgram("cmd.exe", "?/c copy "+Chr(34)+"d:\PureBasic\ readme.txt d:\PureBasic\dobro\toto.txt"+Chr(34)+" /V", "", #PB_Program_Open|#PB_Program_Read) If prg While ProgramRunning(prg) Debug ReadProgramString(prg) Wend EndIf CloseProgram(prg)
J'ai bien lu ton message dobro, sauf que si tu ecris
Je ré-essayerai en rentrant du taf.
Le "mais" laisse entendre que c'est censé fonctionner mais que ça ne fonctionne pas !ceci apparemment fonctionne , mais aucune copie n'est effectué !
Je ré-essayerai en rentrant du taf.
~~~~Règles du forum ~~~~
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
Note que je cite Djes , c'est donc a lui que je m'adressais !!Ar-S a écrit :J'ai bien lu ton message dobro, sauf que si tu ecrisLe "mais" laisse entendre que c'est censé fonctionner mais que ça ne fonctionne pas !ceci apparemment fonctionne , mais aucune copie n'est effectué !
Je ré-essayerai en rentrant du taf.

(reveillez vous les gars !!

oui je dit bien que cela devrai fonctionner , mais que cela ne fonctionne pas !!

Le code suivant fonctionne très bien :
Ar-S> Juste quelques remarques : mets les codes complets quand tu postes, sinon comment veux-tu qu'on teste dans les mêmes conditions? De même, sois plus attentif à la syntaxe; en programmation, un espace en trop, une virgule en moins, et rien ne fonctionne.
Dobro> Moi je m'adressais à tout le monde... Quand j'ai vu le "?" dans ton code, j'ai crû que tu avais mal compris ce que j'avais dit.
Code : Tout sélectionner
image$="c:\test1.txt"
archive$="c:\test2.txt"
RunProgram("cmd"," /c dir c:\ >"+image$,"",#PB_Program_Wait)
RunProgram("cmd"," /c dir c:\ /d >"+archive$,"",#PB_Program_Wait)
fichiersortie$="c:\test3.txt"
parametres$=" copy /B "+Chr(34)+image$+Chr(34)+"+"+Chr(34)+archive$+Chr(34)+" "+fichiersortie$
prg=RunProgram("cmd"," /c "+parametres$,"",#PB_Program_Open) ; ,#PB_Program_Hide
If prg
; MessageRequester("OK","ça marche"+Chr(10)+copy$+" "+parametres$)
SetClipboardText(copy$+" "+parametres$)
EndIf
Dobro> Moi je m'adressais à tout le monde... Quand j'ai vu le "?" dans ton code, j'ai crû que tu avais mal compris ce que j'avais dit.

ah la communication ! le mal du siècle !
En tout cas merci les gars pour votre aide.
J'essayerai ton code ce soir Djes, là je file faire mon Maso chez l'arracheur de dents

En tout cas merci les gars pour votre aide.
J'essayerai ton code ce soir Djes, là je file faire mon Maso chez l'arracheur de dents

~~~~Règles du forum ~~~~
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
De retour,
Après quelques essayes, je ni arrive toujours pas, j'enrage.
Voilà le code complet, j'ai fait en sorte de copier les fichiers dans c:\ histoire de voir si cela venait d'une histoire de chemin "long" mais même pas..
Ainsi vous pourrez tester avec les fichiers adéquate.
Après quelques essayes, je ni arrive toujours pas, j'enrage.
Voilà le code complet, j'ai fait en sorte de copier les fichiers dans c:\ histoire de voir si cela venait d'une histoire de chemin "long" mais même pas..
Code : Tout sélectionner
;Cache Cache by LDV MULTIMEDIA
Enumeration
#WIN
#BT_GO
#AFFICHE
EndEnumeration
;}
Global path$=GetCurrentDirectory()
Global An$="Annulé par l'utilisateur"
Define.l Event, EventWindow, EventGadget, EventType, EventMenu
;}
Procedure OpenWindow_WIN()
If OpenWindow(#WIN, 192, 650, 206, 87, "Cache Cache", #PB_Window_SystemMenu|#PB_Window_MinimizeGadget|#PB_Window_TitleBar|#PB_Window_SizeGadget)
If CreateGadgetList(WindowID(#WIN))
ButtonGadget(#BT_GO, 0, 5, 205, 60, "Cacher une archive dans une image")
StringGadget(#AFFICHE, 1, 68, 204, 19, "By LDVMULTIMEDIA", #PB_String_BorderLess|#ES_CENTER)
; Gadget Colors
PureCOLOR_SetButtonColor(#BT_GO, $68FF5B, $0)
EndIf
EndIf
EndProcedure
OpenWindow_WIN()
;{- Event loop
Repeat
Event = WaitWindowEvent()
Select Event
; ///////////////////
Case #PB_Event_Gadget
EventGadget = EventGadget()
EventType = EventType()
Select EventGadget
Case #BT_GO
SetGadgetText(#AFFICHE,"~ Patientez S.V.P ~")
Delay(100)
ImgFiltre$="Fichier Image ou Audio|*.bmp;*.jpg;*.gif;*.tif;*.png;*.mp3;*.wav;*.ogg;*.mpc;*.aiff;*.rm"
ArchiveFiltre$="Fichier Archivé (rar,zip,ace,7z,kgb)|*.rar;*.zip;*.ace;*.kgb;*.7z"
filtre=0
fichierpardefaut$=path$
image$=OpenFileRequester("Choisissez le fichier multimedia",fichierpardefaut$, ImgFiltre$, filtre)
If image$
ext$=GetExtensionPart(image$)
archive$=OpenFileRequester("Choisissez l'archive à cachée",fichierpardefaut$, ArchiveFiltre$, filtre)
If archive$
SortieFiltre$="Fichier (*."+ext$+")|*."+ext$
FichierSortie$=SaveFileRequester("Nom du nouveau fichier",fichierpardefaut$, SortieFiltre$, filtre)
If FichierSortie$
ArchiveName$=GetFilePart(archive$)
ImageName$=GetFilePart(image$)
archiveTemp$="c:\"+ArchiveName$
imageTemp$="c:\"+ImageName$
CopyFile(image$,imageTemp$)
CopyFile(archive$,archiveTemp$)
FichierSortie$=Chr(34)+FichierSortie$+"."+ext$+Chr(34)
parametres$="copy /B "+Chr(34)+imageTemp$+Chr(34)+" + "+Chr(34)+archiveTemp$+Chr(34)+" "+FichierSortie$
prg=RunProgram("cmd.exe",parametres$,"",#PB_Program_Open) ;
If prg
MessageRequester("OK","Parametres : "+Chr(10)+copy$+" "+parametres$)
SetClipboardText(copy$+" "+parametres$)
SetGadgetText(#AFFICHE,"Terminé")
DeleteFile(imageTemp$) ;
DeleteFile(archiveTemp$) ; suppression des copies des fichiers temporaires
Else
MessageRequester("No","ça chie")
EndIf
CloseProgram(prg)
;MessageRequester("Succés","Le fichier camouflé est : "+FichierSortie$+Chr(10)+"Il est complètement fonctionnel (écoutable, visible...)"+Chr(10)+"Pour ouvrir l'archive camoufflée, il vous suffit d'ouvrir votre fichier avec votre archiveur")
Else
MessageRequester ("Annulé",An$)
EndIf
Else
MessageRequester ("Annulé",An$)
EndIf
Else
MessageRequester ("Annulé",An$)
EndIf
Case #AFFICHE
EndSelect
Case #PB_Event_CloseWindow
EventWindow = EventWindow()
Select EventWindow
Case #WIN
CloseWindow(#WIN)
Break
EndSelect
EndSelect
ForEver
;
;}
~~~~Règles du forum ~~~~
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
Oh, j'hallucine, ça venait bien de ça !
Je ne comprends pas pourquoi l'espace n'est pas automatique !
Ce n'est pas logique, du moment ou l'on appel un programme et qu'on lui attribut des paramètres, l'espace entre les 2 est toujours indispensable.
Vu que la fonction RunProgram contient ces 2 attributs, je trouvais donc logique qu'un espace les séparait.
En tout cas merci, du coup ça fonctionne.
Je ne comprends pas pourquoi l'espace n'est pas automatique !
Ce n'est pas logique, du moment ou l'on appel un programme et qu'on lui attribut des paramètres, l'espace entre les 2 est toujours indispensable.
Vu que la fonction RunProgram contient ces 2 attributs, je trouvais donc logique qu'un espace les séparait.
En tout cas merci, du coup ça fonctionne.
~~~~Règles du forum ~~~~
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels