Page 1 sur 1
[R] Fichier utilisé, impossible de le supprimer
Posté : mer. 26 nov. 2008 17:27
par Flop
bonjour à tous, dans mon script
je télécharge un fichier png, je l'affiche dans une seconde gui, et quand je quitte la seconde gui, impossible de supprimer le fichier, si j'essaye avec windows, il me dit fichier en cours d'utilisation, alors que de mon script, a ce moment la j'en ai plus besoin et surtout je veux le supprimer. comment faire pour outrepasser ce problème.
Merci d'avance
Re: [..] Fichier utilisé, impossible de le supprimer
Posté : mer. 26 nov. 2008 17:58
par Tlem
2 solutions :
1 - Téléchargez l'image dans le TempDir et ne vous en occupé pas (elle sera supprimée après un nettoyage du PC)
2 - Avant de quitter votre 2ieme GUI, attribuez une image vide à votre contrôle puis essayez de supprimer l'image.
Re: [..] Fichier utilisé, impossible de le supprimer
Posté : mer. 26 nov. 2008 19:33
par Flop
je n'y arrive pas, voici le code qui creer ma deuxieme GUI, l'image qu'il faudrait supprimer est covers_existante.png
Tant que je n'ai pas quitter mon prog, windows refuse de supprimer l'image
j'ai essayer de la faire télécharger dans @tempdir, mais ca ne change rien
Code : Tout sélectionner
Func GUIReplace($where, $lang)
$filesize = InetGetSize("http://mon site/" & $lang & "/" & $where)
; téléchargement de la covers existante
InetGet("http://mon site/" & $lang & "/" & $where, @ScriptDir & "\covers_existante.png", 1, 1)
ProgressOn("MeeUploadNiceCovers", "Téléchargement de la covers", "1%")
While @InetGetActive
$percent = Int((@InetGetBytesRead / $filesize) * 100)
ProgressSet($percent, $percent & " %")
Sleep(100)
WEnd
ProgressOff()
_GDIPlus_Startup()
$image_covers_1 = _GDIPlus_ImageLoadFromFile($fileup)
$image_covers_2 = _GDIPlus_ImageLoadFromFile(@ScriptDir & "\covers_existante.png")
$GUI_covers = GUICreate("Remplacement des covers", 600, 390, -1, -1, $WS_POPUPWINDOW)
;GUICtrlCreatePic("", 10, 10, 280, 280)
GUISetState(@SW_SHOW, $GUI_covers)
;-------------------------------------------------------------------
$quitter_covers = GUICtrlCreateButton("QUITTER", 320, 350, 260)
GUICtrlSetFont(-1, 8, 800, 0, "Arial Black")
$remplacer_covers = GUICtrlCreateButton("REMPLACER", 18, 350, 260)
GUICtrlSetFont(-1, 8, 800, 0, "Arial Black")
GUIRegisterMsg($WM_PAINT, "_ReDraw")
$graphics_covers_1 = _GDIPlus_GraphicsCreateFromHWND($GUI_covers)
_GDIPlus_GraphicsDrawImageRect($graphics_covers_1, $image_covers_1, 10, 10, 280, 330)
$graphics_covers_2 = _GDIPlus_GraphicsCreateFromHWND($GUI_covers)
_GDIPlus_GraphicsDrawImageRect($graphics_covers_2, $image_covers_2, 310, 10, 280, 330)
Sleep(3000)
While 1
$msg2 = GUIGetMsg($GUI_covers)
Select
Case $msg2 = $GUI_EVENT_CLOSE
GUIDelete($GUI_covers) IL FAUDRAIS PAR EXEMPLE SUPPRIMER L'IMAGE '(@ScriptDir & "\covers_existante.png")' ICI
ExitLoop
EndSelect
Select
Case $msg2 = $remplacer_covers
GUIDelete($GUI_covers)
$nom_covers_remplacee = $titre[$n2]
If $lang = "FR" Then
UploadFR($where)
_Maj_covers()
ExitLoop
Else
UploadUS($where)
_Maj_covers()
ExitLoop
EndIf
EndSelect
Select
Case $msg2 = $quitter_covers
GUIDelete($GUI_covers)
ExitLoop
EndSelect
WEnd
EndFunc ;==>GUIReplace
Re: [..] Fichier utilisé, impossible de le supprimer
Posté : mer. 26 nov. 2008 19:48
par timmalos
L'utilisation de _GDIplus impose de fermer tout ce qu'on ouvre, sous peine que le programme plante, ce qui n'est pas le cas ici mais vous nje pouvez pas fermer le programme.
Parcourez l'aide à l'aide de F1, et cherchez les _gdiplus_graphicdispose et pen_dispose et fermez toutes vos variables grâce à ses fonctions. Ensuite vous pourrez supprimer l'image

Je n'ai pas trop le temps d'analyser votre script, mais essayer d'analyser un exemple donné avec _gdiplus et vous verrez qu'il faut fermer tous les controles, et ceci en manière generale, c'est une bonne habitude a prendre, et ici si on ne le fait pas, ca cloche

Re: [..] Fichier utilisé, impossible de le supprimer
Posté : mer. 26 nov. 2008 20:06
par Flop
merci bcq, j'ai résolu mon problème en suivant l'aide.. merci encore
Re: [..] Fichier utilisé, impossible de le supprimer
Posté : mer. 26 nov. 2008 20:18
par timmalos
N'oublie pas de modifier ton titre en [R]
Re: [..] Fichier utilisé, impossible de le supprimer
Posté : mer. 26 nov. 2008 20:49
par Tlem
Flop a écrit :j'ai essayer de la faire télécharger dans @tempdir, mais ca ne change rien
Je n'ai pas dit que ça résoudrait votre problème, mais seulement que vous n'auriez pas besoin de vous occupé de l'image car elle serait effacée lors d'un nettoyage du PC.