FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC
Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC

Développement d'applications avec le langage Panoramic
 
AccueilAccueil  RechercherRechercher  Dernières imagesDernières images  S'enregistrerS'enregistrer  MembresMembres  Connexion  
Derniers sujets
» Logiciel de planétarium.
Mise à jour des modules Klaus Emptypar Pedro Aujourd'hui à 8:08

» Un autre pense-bête...
Mise à jour des modules Klaus Emptypar Froggy One Jeu 21 Nov 2024 - 15:54

» Récupération du contenu d'une page html.
Mise à jour des modules Klaus Emptypar Pedro Sam 16 Nov 2024 - 14:04

» Décompilation
Mise à jour des modules Klaus Emptypar JL35 Mar 12 Nov 2024 - 19:57

» Un album photos comme du temps des grands-mères
Mise à jour des modules Klaus Emptypar jjn4 Mar 12 Nov 2024 - 17:23

» traitement d'une feuille excel
Mise à jour des modules Klaus Emptypar jjn4 Jeu 7 Nov 2024 - 3:52

» Aide-mémoire mensuel
Mise à jour des modules Klaus Emptypar jjn4 Lun 4 Nov 2024 - 18:56

» Des incomprèhension avec Timer
Mise à jour des modules Klaus Emptypar Klaus Mer 30 Oct 2024 - 18:26

» KGF_dll - nouvelles versions
Mise à jour des modules Klaus Emptypar Klaus Mar 29 Oct 2024 - 17:58

» instructions panoramic
Mise à jour des modules Klaus Emptypar maelilou Lun 28 Oct 2024 - 19:51

» Figures fractales
Mise à jour des modules Klaus Emptypar Marc Ven 25 Oct 2024 - 12:18

» Panoramic et Scanette
Mise à jour des modules Klaus Emptypar Yannick Mer 25 Sep 2024 - 22:16

» Editeur d étiquette avec QR évolutif
Mise à jour des modules Klaus Emptypar JL35 Lun 23 Sep 2024 - 22:40

» BUG QR Code DelphiZXingQRCode
Mise à jour des modules Klaus Emptypar Yannick Dim 22 Sep 2024 - 11:40

» fichier.exe
Mise à jour des modules Klaus Emptypar leclode Ven 20 Sep 2024 - 19:02

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Novembre 2024
LunMarMerJeuVenSamDim
    123
45678910
11121314151617
18192021222324
252627282930 
CalendrierCalendrier
Le deal à ne pas rater :
Smartphone Xiaomi 14 – 512 Go- 6,36″ 5G Double SIM à 599€
599 €
Voir le deal

 

 Mise à jour des modules Klaus

Aller en bas 
3 participants
AuteurMessage
JL35




Nombre de messages : 7112
Localisation : 77
Date d'inscription : 29/11/2007

Mise à jour des modules Klaus Empty
MessageSujet: Mise à jour des modules Klaus   Mise à jour des modules Klaus EmptyVen 17 Mai 2013 - 10:47

Pardon Klaus si j'interviens ici, mais ayant eu quelques difficultés avec la fonction 'officielle' de mise à jour (en fait ça ne veut pas marcher chez moi), j'ai adopté une approche un peu différente, que voici:
Code:
' Mise à jour de KGF.dll et autres modules
LABEL Fin, GUI, Clic2, Clic, Dlf, Valide, Version, Datpdf, Datfich
DIM url$, urll$(20), fi$(20), Nbfich, a$, b$, p$, nurl%, i%, j%, k%, t%, f$, tl$
DIM ver$, fv$, nf%, n%, res%, dat$, al1, al2, al3, bt1, bt2, e1, e2, e3
p$ = "C:\PANORAMIC\KLAUS\DLLs\": ' répertoire d'utilisation des modules
tl$ = "C:\TELECHAR\": ' répertoire des téléchargements
DATA "http://klaus.panoramic.voila.net/versions/KGF.dll"
DATA "http://klaus.panoramic.voila.net/versions/KGF.pdf"
DATA "http://klaus.panoramic.voila.net/versions/KGF.chm"
DATA "http://klaus.panoramic.voila.net/versions/KGF.doc"
DATA "http://klaus.panoramic.voila.net/versions/BDR.dll"
DATA "http://klaus.panoramic.voila.net/versions/KGF_SUB.bas"
DATA "http://klaus.panoramic.voila.net/versions/BDR_SUB.chm"
DATA "http://klaus.panoramic.voila.net/versions/BDR_SUB.doc"
DATA "http://klaus.panoramic.voila.net/versions/BDR_SUB.pdf"
DATA "F"
nurl% = 0: READ a$
WHILE a$ <> "F"
    nurl% = nurl%+1: urll$(nurl%) = a$
    FOR k% = LEN(a$) TO 1 STEP -1
        IF MID$(a$, k%, 1) = "/" THEN EXIT_FOR
    NEXT k%
    fi$(nurl%) = MID$(a$, k%+1, 20): ' fichier à charger
    READ a$
END_WHILE

DLL_ON p$+"KGF.dll"
GOSUB GUI
END
' ==============================================================================
Fin:
TERMINATE
' ==============================================================================
GUI:
HEIGHT 0, nurl%*25+120: WIDTH 0,340: CAPTION 0,"KGF UPDATE": BORDER_SMALL 0
FONT_NAME 0,"Arial": COLOR 0,190,255,255
al1 = 201
ALPHA al1: LEFT al1,15: TOP al1,6: FONT_COLOR al1,0,0,255: FONT_BOLD al1
CAPTION al1,"Choisir les fichiers à mettre à jour:"
al2 = 202
ALPHA al2: LEFT al2,120: TOP al2,25: FONT_COLOR al2,0,0,255
CAPTION al2, "Version actuelle:      Version téléchargée:"

t% = 15
FOR i% = 1 TO nurl%
    t% = t%+25: CHECK i%: TOP i%,t%: LEFT i%,10: WIDTH i%,280
    ON_CLICK i%, Clic2: CURSOR_POINT i%
    e1 = i%*10+1: EDIT e1: TOP e1,TOP(i%): LEFT e1,LEFT(i%)+20: WIDTH e1,80: ' Nom
    e2 = e1+1: EDIT e2: TOP e2,TOP(i%): LEFT e2,LEFT(e1)+WIDTH(e1)+5: WIDTH e2,100: ' Version act
    e3 = e2+1: EDIT e3: TOP e3,TOP(i%): LEFT e3,LEFT(e2)+WIDTH(e2)+5: WIDTH e3,100: ' Version nouv
    f$ = fi$(i%): fv$ = p$ + f$
    TEXT e1, f$
    IF f$ = "KGF.dll" OR f$ = "BDR.dll"
        GOSUB Version
        TEXT e2, MID$(ver$, 9, 20)
    ELSE
        IF RIGHT$(f$, 4) = ".pdf"
            GOSUB Datpdf
        ELSE
            GOSUB Datfich
        END_IF
        TEXT e2, dat$
    END_IF
NEXT i%
bt1 = 204
BUTTON bt1: TOP bt1,HEIGHT(0)-60: LEFT bt1,220: CAPTION bt1,"OK"
ON_CLICK bt1, Clic
al3 = 203
ALPHA al3: TOP al3,HEIGHT(0)-80: LEFT al3,10
bt2 = 205
BUTTON bt2: TOP bt2,TOP(bt1): LEFT bt2,100: CAPTION bt2,"Valider": HIDE bt2
ON_CLICK bt2, Valide
RETURN
' ==============================================================================
Clic2:
' Click sur un check
FOR i% = 1 TO nurl%
    IF CLICKED(i%) = 1
        IF CHECKED(i%) = 1
            Nbfich = Nbfich + 1
        ELSE
            Nbfich = Nbfich - 1
        END_IF
    END_IF
NEXT i%
RETURN
' ==============================================================================
Clic:
CAPTION al3, "Chargement des fichiers..."
nf% = 0
FOR n% = 1 TO nurl%
    IF CHECKED(n%) = 1
        nf% = nf% + 1
        url$ = urll$(n%): f$ = fi$(n%): ' fichier à charger
        GOSUB Dlf: ' téléchargement du fichier
        fv$ = a$: ' chemin du fichier téléchargé
        e3 = n%*10 + 3
        IF f$ = "KGF.dll" OR f$ = "BDR.dll"
            GOSUB Version : ' version du nouveau fichier téléchargé
            b$ = MID$(ver$, 9, 20)
            TEXT e3, b$
            ' CAPTION n%, CAPTION$(n%)+"  ->  "+b$
        ELSE
            IF RIGHT$(f$, 4) = ".pdf"
                GOSUB Datpdf
            ELSE
                GOSUB Datfich
            END_IF
            TEXT e3, dat$
        END_IF
    END_IF
NEXT n%
IF nf% = 0 THEN CAPTION al3, "": RETURN: ' pas de fichier coché
CAPTION bt1,"Quitter": ON_CLICK bt1, Fin
CAPTION al3,"Terminé, valider ? (décocher les modules à ne pas actualiser)"
SHOW bt2
RETURN
' ==============================================================================
Dlf:
' Connexion à l'url donnée et téléchargement du fichier f$
a$ = tl$ + f$
IF FILE_EXISTS(a$) = 1 THEN FILE_DELETE a$
EXECUTE_WAIT url$
WHILE FILE_EXISTS(a$) = 0: WAIT 1000: END_WHILE
' ici, fichier téléchargé dans le répertoire tl$
RETURN
' ==============================================================================
Valide:
' Recopie des fichiers  téléchargés dans leur répertoire d'utilisation
FOR i% = 1 TO nurl%
    IF CHECKED(i%) = 1
        a$ = fi$(i%): ' fichier
        IF FILE_EXISTS(tl$+a$) = 1: ' fichier téléchargé
            ' IF FILE_EXISTS(p$+a$) = 1 THEN FILE_DELETE p$+a$
            ' FILE_COPY tl$+a$,p$+a$
            EXECUTE_WAIT "CMD.exe /C COPY " + tl$+a$ + " " + p$+a$ + " /Y"
            FILE_DELETE tl$+a$
        END_IF
    END_IF
NEXT i%
RETURN
' ==============================================================================
Version:
' rechercher la version de KGF.dll ou BDR.dll, fv$ = chemin complet
f$ = FILE_EXTRACT_NAME$(fv$)
FILEBIN_OPEN_READ 9, fv$: a$ = STRING$(FILEBIN_SIZE(9)," "): FILEBIN_CLOSE 9
res% = DLL_CALL2("ReadBinaryFileToString",ADR(fv$),ADR(a$))
b$ = CHR$(25)+CHR$(0)+CHR$(0)+CHR$(0)+f$+" V": ' séquence cherchée (empirique)
k% = INSTR(a$, b$): ver$ = f$
IF k% > 0 THEN ver$ = MID$(a$, k%+4, 25)
RETURN
' ==============================================================================
Datpdf:
' Date de création d'un fichier pdf
dat$ = "(non trouvé)"
IF FILE_EXISTS(fv$) = 1
    FILEBIN_OPEN_READ 9, fv$: a$ = STRING$(FILEBIN_SIZE(9)," "): FILEBIN_CLOSE 9
    res% = DLL_CALL2("ReadBinaryFileToString",ADR(fv$),ADR(a$))
    b$ = "/CreationDate <": ' séquence cherchée
    k% = INSTR(a$, b$)
    dat$ = "": b$ = ""
    IF k% > 0
        a$ = MID$(a$, k%+19,24): ' Creation Date
        FOR k% = 2 TO LEN(a$) STEP 2
            b$ = b$ + STR$(VAL(MID$(a$, k%, 1)))
        NEXT k%
        dat$ = MID$(b$,7,2)+"/"+MID$(b$,5,2)+"/"+LEFT$(b$,4)+" "
        dat$ = dat$ + MID$(b$,9,2)+":"+MID$(b$,11,2)
    END_IF
END_iF
RETURN
' ==============================================================================
Datfich:
' Date de création d'un fichier quelconque
' -> date d'écriture sur le disque, après téléchargement... sans intérêt
dat$ = "(non trouvé)"
IF FILE_EXISTS(fv$) = 1
    dat$ = STRING$(255," ")
    res% = DLL_CALL2("GetFileDate",ADR(fv$),ADR(dat$))
    dat$ = LEFT$(dat$,16): ' sans les secondes
END_IF
RETURN
' ==============================================================================
SUB Exprog(prog$)
    ' Exécution d'un programme externe sans la fenêtre noire Ms-DOS
    ' - exemple: Exprog("Cmd.exe /c DIR C:\UTIL >C:\TEMP\Dir.txt")
    DIM_LOCAL scr$, bat$, qu$
    scr$ = "C:\TEMP\Vbscript.vbs"
    bat$ = "C:\TEMP\Bat.bat"
    qu$ = CHR$(34)
    ' ===== Création du fichier .bat
    FILE_OPEN_WRITE 9, bat$: FILE_WRITELN 9, prog$: FILE_CLOSE 9
    ' ===== Création du script .vbs
    FILE_OPEN_WRITE 9, scr$
    FILE_WRITELN 9, "CreateObject("+qu$+"Wscript.Shell"+qu$+").Run "+qu$+bat$+qu$+",0,True"
    FILE_CLOSE 9
    ' ===== Exécution du script
    EXECUTE_WAIT "WSCRIPT.exe "+scr$
    FILE_DELETE bat$: FILE_DELETE scr$
END_SUB
' ==============================================================================

Remarques:
- Il faut adapter les variables p$ et tl$.
- je n'utilise donc pas la fonction DownloadFile, mais une connexion directe sur le téléchargement du fichier.
- les téléchargements se font dans le répertoire implicite de téléchargements du navigateur.
- il s'affiche la date ou la version actuelle (en service) des fichiers, puis, après téléchargement, la date ou la version des fichiers téléchargés, le transfert dans le répertoire d'utilisation ne se faisant qu'à l'appui sur un bouton (avec suppression dans le répertoire de téléchargement).

Les date/version de KGF.dll et BDR.dll sont lues dans le fichier lui-même, ainsi que les dates de création des fichiers pdf,
Il faut noter que la date fichier donnée par la fonction GetFileDate est la date d'écriture sur le disque au moment du chargement, et non la date de création, donc sans intérêt pour comparer les versions.

PS Je ne me lasse pas de la fonction ReadFileToString qui est irremplaçable par sa facilité pour analyser un fichier binaire, les fonction natives Panoramic étant bien trop limitées pour un fichier un peu long.


Dernière édition par JL35 le Ven 17 Mai 2013 - 13:31, édité 2 fois
Revenir en haut Aller en bas
Klaus

Klaus


Nombre de messages : 12331
Age : 75
Localisation : Ile de France
Date d'inscription : 29/12/2009

Mise à jour des modules Klaus Empty
MessageSujet: Re: Mise à jour des modules Klaus   Mise à jour des modules Klaus EmptyVen 17 Mai 2013 - 12:53

Belle réalisation !
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Yannick




Nombre de messages : 8635
Age : 53
Localisation : Bretagne
Date d'inscription : 15/02/2010

Mise à jour des modules Klaus Empty
MessageSujet: re   Mise à jour des modules Klaus EmptyVen 17 Mai 2013 - 12:56

Beau Travail !

Attention, ne fonctionne pas avec chrome en navigateur par défaut.
Chrome demande une autorisation pour charger les dlls,
ce qui bloque le programme.

Edit : Une idée comme çà... Laughing Peut être est ce mozilla qui bloque le chargement avec l'autre méthode... Laughing
Revenir en haut Aller en bas
JL35




Nombre de messages : 7112
Localisation : 77
Date d'inscription : 29/11/2007

Mise à jour des modules Klaus Empty
MessageSujet: Re: Mise à jour des modules Klaus   Mise à jour des modules Klaus EmptyVen 17 Mai 2013 - 13:25

Je viens de corriger une omission dans le s/p Clic: prise en compte de la date de création des pdf téléchargés...

@ygeronimi
bizarre que chrome bloque les dll et pas les autres... ce n'est pas un paramètre à changer ?
En tout cas pour moi je ne sais pas ce qui bloque la fonction, le code erreur n'est pas très explicite !
Revenir en haut Aller en bas
Yannick




Nombre de messages : 8635
Age : 53
Localisation : Bretagne
Date d'inscription : 15/02/2010

Mise à jour des modules Klaus Empty
MessageSujet: re   Mise à jour des modules Klaus EmptyVen 17 Mai 2013 - 13:32

Chrome me demande une autorisation pour toutes les extensions système.
*.exe , *.dll , ...
Revenir en haut Aller en bas
JL35




Nombre de messages : 7112
Localisation : 77
Date d'inscription : 29/11/2007

Mise à jour des modules Klaus Empty
MessageSujet: Re: Mise à jour des modules Klaus   Mise à jour des modules Klaus EmptyVen 17 Mai 2013 - 14:00

Je sais que ça existe pour les exe, et c'est aussi logique pour les dll, pareil pour les ouvrir en pièces jointes dans les emails, mais firefox ne me demande rien...
Peut-être que je les ai autorisés définitivement quelque part...

Je précise au passage (toujours dans mon système ci-dessus) qu'en ce qui concerne le téléchargement des pdf, c'est la 1ère page qui est présentée, il faut cliquer sur l'icône en haut à droite pour se voir proposer le téléchargement:
Mise à jour des modules Klaus Pdf
Revenir en haut Aller en bas
Contenu sponsorisé





Mise à jour des modules Klaus Empty
MessageSujet: Re: Mise à jour des modules Klaus   Mise à jour des modules Klaus Empty

Revenir en haut Aller en bas
 
Mise à jour des modules Klaus
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» Mise à jour de Panoramic_Editor
» Mise à jour de la documentation
» PanExpress : l'éditeur Panoramic avec création d'objet
» Traitement des chaînes de caractères.
» Mise à jour PANOCALC

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC :: Activité des sites créés par les Panoramiciens. :: Le site de Klaus-
Sauter vers: