JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Mise à jour de Panoramic_Editor Sam 15 Avr 2017 - 18:46 | |
| Une nouvelle version de l'éditeur aujourdhui... Pour automatiser la mise à jour vers une nouvelle version: - téléchargement - renommage de la version actuelle en .old - décompression du nouveau .zip dans Program Files: - Code:
-
' Nouvelle version de Panoramic_Editor LABEL Quit,Telech,Instal,Version,Annul DIM url$,fr$,fe$,Pa$,Panedi$,Edp$,Pnew$,fold$,fnew$,a$,k%,q$,as$,ve$,vn$ q$ = CHR$(34): as$ = CHR$(92): ' (antislash, souvent escamoté par le forum) url$ = "http://panoramic-language.pagesperso-orange.fr/PANORAMIC_EDITOR.zip" Pa$ = "C:\PANORAMIC"+as$: ' chemin des sources Panoramic Panedi$ = "C:\Program Files (x86)\Panoramic Editor\PANORAMIC_EDITOR.exe": ' Éditeur fold$ = LEFT$(Panedi$,LEN(Panedi$)-3)+"old": ' idem, version précédente fnew$ = LEFT$(Panedi$,LEN(Panedi$)-3)+"new": ' idem, version nouvelle Edp$ = FILE_EXTRACT_PATH$(Panedi$) Pnew$ = Pa$+"NewEdit"+as$: IF DIR_EXISTS(Pnew$) = 0 THEN DIR_MAKE Pnew$ fr$ = Pnew$+"PANORAMIC_EDITOR.zip" fe$ = Pnew$+"PANORAMIC_EDITOR.exe" q$ = CHR$(34)
BORDER_SMALL 0: WIDTH 0,340: HEIGHT 0,320: FONT_BOLD 0: COLOR 0,190,255,255 CAPTION 0,"***** MISE À JOUR DE PANORAMIC_EDITOR *****" FONT_NAME 0,"Arial": FONT_SIZE 0,9 LIST 1: WIDTH 1,320: HEIGHT 1,110: FONT_SIZE 1,10: COLOR 1,255,255,192 ITEM_ADD 1,"====== OPÉRATIONS SUCCESSIVES : ======": ITEM_ADD 1,"" ITEM_ADD 1," 1_ Téléchargement du nouvel Éditeur.zip" ITEM_ADD 1," 2_ Décompression du .zip dans temporaire" ITEM_ADD 1," 3_ Renommage de l'Éditeur existant en .old" ITEM_ADD 1," 4_ Recopie du nouveau dans Program Files" ALPHA 5: TOP 5,HEIGHT(1)+3: LEFT 5,20: COLOR 5,255,255,0: CAPTION 5," Version actuelle: " ALPHA 12: TOP 12,TOP(5)+32: LEFT 12,5: CAPTION 12,"Phase:" EDIT 13: TOP 13,TOP(12)-3: LEFT 13,45: WIDTH 13,70 BUTTON 15: TOP 15,TOP(13): LEFT 15,130: WIDTH 15,190 CAPTION 15,"Télécharger la nouvelle version": ON_CLICK 15,Telech ALPHA 16: TOP 16,TOP(15)+40: LEFT 16,20: COLOR 16,255,255,0: CAPTION 16," Version nouvelle: " BUTTON 17: TOP 17,TOP(16)+30: LEFT 17,LEFT(15): WIDTH 17,WIDTH(15) CAPTION 17,"Installer la nouvelle version": ON_CLICK 17,Instal BUTTON 20: TOP 20,TOP(17)+45: LEFT 20,10: WIDTH 20,WIDTH(15) CAPTION 20,"Annuler (retour arrière)": ON_CLICK 20,Annul BUTTON 21: TOP 21,TOP(20): LEFT 21,WIDTH(0)-95: CAPTION 21,"Quitter": ON_CLICK 21,Quit FORM 80: TOP 80,0: LEFT 80,0: WIDTH 80,400: HEIGHT 80,70: BORDER_SMALL 80: HIDE 80 FONT_SIZE 80,20: FONT_ITALIC 80: FONT_BOLD 80: FONT_COLOR 80,180,0,0 ALPHA 81: PARENT 81,80: COLOR 80,255,255,0: CAPTION 81," Téléchargement en cours..."
a$ = Panedi$: GOSUB Version: ve$ = a$: CAPTION 5," Version actuelle: "+ve$+" " END ' ============================================================================== Quit: IF DIR_EXISTS(Pnew$) = 1: ' nettoyage final IF FILE_EXISTS(fr$) = 1 THEN FILE_DELETE fr$ IF FILE_EXISTS(fe$) = 1 THEN FILE_DELETE fe$ DIR_REMOVE Pnew$ END_IF TERMINATE ' ============================================================================== Telech: ' Téléchargement du .zip TEXT 13,"1" SHOW 80 WebFile(url$,fr$) HIDE 80 IF FILE_EXISTS(fr$) = 0 MESSAGE "Fichier zip non trouvé !"+CHR$(10)+"Quitter" TEXT 13,"Abandon": RETURN END_IF ' Décompression du .zip dans temporaire TEXT 13,"2" ARCHIVER_ON: ARCHIVER_EXTRACT fr$,Pnew$: ARCHIVER_OFF IF FILE_EXISTS(fe$) = 0 i% = MESSAGE_ERROR_OK("Panoramic_Editor non créé !") TEXT 13,"Abandon" ELSE a$ = fe$: GOSUB Version: vn$ = a$ CAPTION 16," Version nouvelle: "+vn$+" " IF vn$ = ve$ a$ = "Version téléchargée identique à la version actuelle !" a$ = a$+CHR$(10)+CHR$(10)+"On continue quand même ?" MESSAGE_CONFIRMATION_YES_NO(a$) IF i% <> 1 THEN TEXT 13,"Abandon" END_IF END_IF RETURN ' ============================================================================== Instal: ' Recopier le nouveau .exe dans Program Files TEXT 13,"3" FILE_RENAME Panedi$,fold$: ' Editeur actuel -> .old TEXT 13,"4" FILE_MOVE fe$,CHR$(34)+Panedi$+CHR$(34) a$ = Panedi$: GOSUB Version: CAPTION 5," Version actuelle: "+a$+" " TEXT 13,"Installé !" RETURN ' ============================================================================== Version: ' Version de Panoramic_Editor.exe (chemin a$) FindStr("PANORAMIC Version ",a$) a$ = CLIPBOARD_STRING_PASTE$: k% = INSTR(a$,"Version"): a$ = RIGHT_POS$(a$,k%+8) RETURN ' ============================================================================== Annul: ' Annuler l'opération: .exe -> .new, .old -> .exe IF FILE_EXISTS(fold$) = 0 MESSAGE "Pas de version .old !"+CHR$(10)+"Quitter": RETURN END_IF IF FILE_EXISTS(fnew$) = 1 THEN FILE_DELETE fnew$ FILE_RENAME Panedi$,fnew$: ' renommer l'actuel en .new FILE_RENAME fold$,Panedi$: ' rétablir le .old en .exe a$ = Panedi$: GOSUB Version: CAPTION 5," Version actuelle: "+a$+" " CAPTION 16,"" RETURN ' ============================================================================== SUB WebFile(url$,fr$) ' Télécharger dans fr$ la page web (fichier html) à l'adresse web url$ EXECUTE_WAIT "Powershell (New-Object System.Net.WebClient).DownloadFile('"+url$+"'"+",'"+fr$+"')" END_SUB ' ============================================================================== SUB Findstr(txt$,f$) ' Recherche de la chaîne txt$ dans le fichier f$ (fichier Ascii ou binaire) ' (sans la fenêtre noire) ' Résultat dans le clipboard DIM_LOCAL scr$,bat$,q$ scr$ = "C:\TEMP\Scr.vbs": bat$ = "C:\TEMP\Bat.bat" q$ = CHR$(34) FILE_OPEN_WRITE 9,bat$ FILE_WRITELN 9,"cmd.exe /c FIND "+q$+txt$+q$+" "+q$+f$+q$+" | clip" FILE_CLOSE 9 FILE_OPEN_WRITE 9, scr$ FILE_WRITELN 9, "CreateObject("+q$+"Wscript.Shell"+q$+").Run "+q$+bat$+q$+",0,True" FILE_CLOSE 9 EXECUTE_WAIT "WSCRIPT.exe "+scr$ FILE_DELETE bat$: FILE_DELETE scr$ END_SUB ' ==============================================================================
Une précision: il faut adapter les chemins à sa propre configuration, dans les variables suivantes: - Pa$: chemin des sources Panoramic .bas - Panedi$: chemin de Panoramic_Editor.exe il y a encore des antislash de fin qui avaient sauté, c'est en principe rectifié...Edit: j'ai ajouté la possibilité de revenir en arrière sur la version précédente, pour le cas où on ne serait pas satisfait de la nouvelle version, ou pour toute autre raison. Il vaut mieux évidemment faire l'opération avec une version compilée de ce programme. Ce n'est pas très sain de changer d'éditeur alors qu'il est actif ! | |
|