Code : Tout sélectionner
; Déclaration du répertoire d'arrivée
Global $REPERTOIRE = "C:\Users\Thierry\Downloads\projet\Changeur panneau systeme\" ; Le "\" final est important
Global $COMMANDE = @ComSpec & " C:\Users\Thierry\Downloads\projet\Changeur panneau systeme " & "changer.bat" ; Ligne de commande du batch/cmd à appliquer
DirCreate($REPERTOIRE) ; Au cas où il n'existe pas
; Lancement pour le test
traitementImage()
Func traitementImage()
Local $retour, $ecrase, $nomImage, $cheminImage = FileOpenDialog("Choisir une image",@MyDocumentsDir,"Images (*.jpg;*.bmp)|Tous (*.*)",1)
If @error Then
MsgBox(0,"Erreur 1 :","Le choix de l'image n'a pas été pris en compte")
Return 1
Else
$ecrase = 1 ; Valeur "1" si écrasement possible du fichier
$retour = FileCopy($cheminImage,$REPERTOIRE,$ecrase) ; "FileMove" si déplacement vers le répertoire de l'utilitaire
If $retour = 0 Then
MsgBox(0,"Erreur 2 :","La copie/déplacement du fichier a échoué(e)")
Return 2
Else
$nomImage = StringTrimLeft($cheminImage,StringInStr($cheminImage,"\",0,-1)) ; On isole le nom de l'image sans les repertoires (dernier "\")
$nomDestination = "MonImage."&StringTrimLeft($nomImage,StringInStr($nomImage,".",0,-1)) ; On garde l'extension du fichier de départ
$retour = FileMove($REPERTOIRE&$nomImage, $REPERTOIRE&$nomDestination, 1)
If $retour = 0 Then
MsgBox(0,"Erreur 3 :","Le renommage du fichier a échoué")
Return 3
Else
RunWait($COMMANDE,$REPERTOIRE,@SW_HIDE)
If @error Then
MsgBox(0,"Erreur 4 :","Le batch a plantu")
Return 4
Else
Shellexecute("changer.bat","","C:\Users\Thierry\Downloads\projet\Changeur panneau systeme")
EndIf
EndIf
EndIf
EndIf
Return 0 ; Pas d'erreur
EndFunc[/spoiler]
sinon je me demandé si je pouvais intégrer ce que fait mon .bat et lancer le script du fichier replacer.cmd ,comme ça mais sans les érreurs:
[spoiler=tout inclure]Global $REPERTOIRE = "@scriptdir\" ; Le "\" final est important
Filecopy( "%windir%\System32\shell32.dll", "@scriptdir",1)
#include <ButtonConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
Opt("GUIOnEventMode", 1)
#Region ### START Koda GUI section ### Form=
Global $Form2 = GUICreate("Changeur image panneau", 453, 201, 320, 253)
GUISetIcon("D:\004.ico")
Global $Button1 = GUICtrlCreateButton("&Choisir image", 350, 11, 83, 25, $WS_GROUP)
Global $Button2 = GUICtrlCreateButton("&Changer bouton", 349, 76, 83, 25, $WS_GROUP)
Global $Button3 = GUICtrlCreateButton("&Quitter", 157, 132, 83, 25, $WS_GROUP)
Global $Label1 = GUICtrlCreateLabel("Cliquer sur le bouton et choisir une image parmis celles proposées", 8, 8, 312, 17)
Global $Label2 = GUICtrlCreateLabel("Cliquer sur le bouton pour changer le panneau puis redémarrer", 16, 80, 297, 17)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###
While 1
Sleep(100)
WEnd
Case $button3 ;Lors de l'appuie sur le boutton 3
quitter?
Case $button2 ;Lors de l'appuie sur le boutton 2
ResHacker.exe -addoverwrite shell32.dll, shell32 1.dll, MonImage.bmp , bitmap, 633,
Replacer.cmd Script.txt
; Lancement pour le test
Case $button1 ;Lors de l'appuie sur le boutton 1
lancer le traitementImage
; Lancement pour le test
traitementImage()
Func traitementImage()
Local $retour, $ecrase, $nomImage, $cheminImage = FileOpenDialog("Choisir une image",@MyDocumentsDir,"Images (*.jpg;*.bmp)|Tous (*.*)",1)
If @error Then
MsgBox(0,"Erreur 1 :","Le choix de l'image n'a pas été pris en compte")
Return 1
Else
$ecrase = 1 ; Valeur "1" si écrasement possible du fichier
$retour = FileCopy($cheminImage,$REPERTOIRE,$ecrase) ; "FileMove" si déplacement vers le répertoire de l'utilitaire
If $retour = 0 Then
MsgBox(0,"Erreur 2 :","La copie/déplacement du fichier a échoué(e)")
Return 2
Else
$nomImage = StringTrimLeft($cheminImage,StringInStr($cheminImage,"\",0,-1)) ; On isole le nom de l'image sans les repertoires (dernier "\")
$nomDestination = "MonImage."&StringTrimLeft($nomImage,StringInStr($nomImage,".",0,-1)) ; On garde l'extension du fichier de départ
$retour = FileMove($REPERTOIRE&$nomImage, $REPERTOIRE&$nomDestination, 1)
If $retour = 0 Then
MsgBox(0,"Erreur 3 :","Le renommage du fichier a échoué")
Return 3
Else
RunWait($COMMANDE,$REPERTOIRE,@SW_HIDE)
If @error Then
MsgBox(0,"Erreur 4 :","Le batch a plante")
Return 4
EndIf
EndIf
EndIf
EndIf
Return 0 ; Pas d'erreur
EndFunc EndFunc[/spoiler]