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.
Explorateur Emptypar Pedro Aujourd'hui à 8:08

» Un autre pense-bête...
Explorateur Emptypar Froggy One Jeu 21 Nov 2024 - 15:54

» Récupération du contenu d'une page html.
Explorateur Emptypar Pedro Sam 16 Nov 2024 - 14:04

» Décompilation
Explorateur Emptypar JL35 Mar 12 Nov 2024 - 19:57

» Un album photos comme du temps des grands-mères
Explorateur Emptypar jjn4 Mar 12 Nov 2024 - 17:23

» traitement d'une feuille excel
Explorateur Emptypar jjn4 Jeu 7 Nov 2024 - 3:52

» Aide-mémoire mensuel
Explorateur Emptypar jjn4 Lun 4 Nov 2024 - 18:56

» Des incomprèhension avec Timer
Explorateur Emptypar Klaus Mer 30 Oct 2024 - 18:26

» KGF_dll - nouvelles versions
Explorateur Emptypar Klaus Mar 29 Oct 2024 - 17:58

» instructions panoramic
Explorateur Emptypar maelilou Lun 28 Oct 2024 - 19:51

» Figures fractales
Explorateur Emptypar Marc Ven 25 Oct 2024 - 12:18

» Panoramic et Scanette
Explorateur Emptypar Yannick Mer 25 Sep 2024 - 22:16

» Editeur d étiquette avec QR évolutif
Explorateur Emptypar JL35 Lun 23 Sep 2024 - 22:40

» BUG QR Code DelphiZXingQRCode
Explorateur Emptypar Yannick Dim 22 Sep 2024 - 11:40

» fichier.exe
Explorateur 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 :
Boutique Nike : -25% dès 50€ sur TOUT le site Nike avec le code ...
Voir le deal

 

 Explorateur

Aller en bas 
+2
Jicehel
JL35
6 participants
Aller à la page : 1, 2  Suivant
AuteurMessage
JL35




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

Explorateur Empty
MessageSujet: Explorateur   Explorateur EmptyJeu 13 Oct 2011 - 21:44

Je viens de voir l'intervention de Severin sur le post à côté, sur le même sujet, je voulais soumettre mes cogitations du jour sur un explorateur de fichiers, suite à l'idée initiale de minifly.
Mon idée était de faire un explorateur à deux fenêtres possibles, pour pouvoir examiner deux répertoires en même temps, et copier un fichier entre deux répertoires.
Voilà ce que ça donne (ici je suis en option 'une seule fenêtre', deux sont possibles, soit côte à côte, soit superposées (menu Affichage):
Explorateur Explo
et le programme:
Code:

' TwinExplo.bas, explorateur de fichiers, d'après une idée de minifly
DIM D_List(2),F_List(2), Edl(2), Bt1(2), Bt2(2), Bt3(2), Bt4(2), Bt5(2), Bt6(2), Bt9(2)
DIM rc$(2), nodir%, iv$, copy%, fco$, rco$, nol%, hex%, nof%
DIM a$, b$, c$, d$, f$, n, i%, j%, k%, w, h, w0, h0, nfen, sens, hl, tl, wl, tp, lp, inivol%
DIM sz, ad, v$, dw$, ta$, nc$, cw$, x1, y1, x2, y2, lfb, xc, yc, usname$, preced$
DIM atf%, xs1, xs2, sqm$, sel%(5000), nsel%, fsel%, fscr$, fvol$

LABEL Main, Dir, sdi, Volumes, Chrep, Chfic, Nmult, Razsel, Fenetres, UserName
LABEL Voir, Irfan, Wlis, Nlg, HexDec, Fvo, Propr, Renom, Copie, Suppr, Exec, Fin, Aide

Edl(1) = 1000: D_List(1) = 1001: F_List(1) = 1002
Bt1(1)=1003: Bt2(1)=1004: Bt3(1)=1005: Bt4(1)=1006: Bt5(1)=1007:Bt6(1)=1008
Bt9(1)=1012
Edl(2) = 2000: D_List(2) = 2001: F_List(2) = 2002
Bt1(2)=2003: Bt2(2)=2004: Bt3(2)=2005: Bt4(2)=2006: Bt5(2)=2007:Bt6(2)=2008
Bt9(2)=2012

iv$ = "C:\Progra~1\Irfanv~1\i_view32.exe "
IF FILE_EXISTS(iv$) = 0
    iv$ = "C:\Progra~2\Irfanv~1\i_view32.exe ": ' (sous Windows 7)
END_IF
fscr$ = "C:\Temp\ScrVbs.vbs": ' script exécutable créé
fvol$ = "C:\Temp\ResVbs.txt"
GOSUB UserName: ' nom utilisateur du pc, appel unique du s/p
sqm$ = CHR$(7) + " ": ' séquence sélections multiples
w = 540: h = 480
hl = h-90: tl = 30
wl = 200
nfen = 1: sens = 0
nodir% = 0
preced$ = " "+CHR$(24)
BORDER_SMALL 0: COLOR 0, 128,255,255
CAPTION 0, "- EXPLORATEUR -": ' GOSUB Main

MAIN_MENU 10
SUB_MENU 11: PARENT 11, 10: CAPTION 11, "Affichage"
  SUB_MENU 21: PARENT 21, 11: CAPTION 21, CHR$(7)+" Une fenêtre"
  SUB_MENU 22: PARENT 22, 11: CAPTION 22, "  Deux fenêtres côte-à-côte"
  SUB_MENU 23: PARENT 23, 11: CAPTION 23, "  Deux fenêtres superposées"
  FOR i% = 21 TO 23: ON_CLICK i%, Fenetres: NEXT i%
SUB_MENU 12: PARENT 12, 10: CAPTION 12, "Aide"
ON_CLICK 12, Aide
SUB_MENU 13: PARENT 13, 10: CAPTION 13, "Quitter": ON_CLICK 13, Fin

GOSUB Main

BUTTON 20: HIDE 20: ' séparateur de fenêtres (éventuel)
hl = h-100: tl = 40
' n=Edl(1): EDIT n: LEFT n,10: TOP n,tl-25: WIDTH n,w-30
n=Edl(1): LIST n: LEFT n,10: TOP n,tl-36: WIDTH n,w-30: HEIGHT n,32
FONT_BOLD n: FONT_COLOR n, 64,0,0
n=D_List(1): LIST n: LEFT n,10: TOP n,tl: WIDTH n,wl: HEIGHT n,hl
COLOR n,255,255,128: FONT_BOLD n: FONT_COLOR n,0,0,255: ON_CLICK n, Chrep
n=F_List(1): LIST n: LEFT n,wl+20: TOP n,tl: WIDTH n,wl: HEIGHT n,hl
ON_CLICK n, Chfic
lfb = 2*wl+30
n = Bt1(1): BUTTON n: TOP n,tl: LEFT n,lfb: WIDTH n,90: HEIGHT n,25
CAPTION n, "Voir": ON_CLICK n, Voir
n = Bt2(1): BUTTON n: TOP n,tl+30: LEFT n,lfb: WIDTH n,90: HEIGHT n,25
CAPTION n, "Propriétés": ON_CLICK n, Propr
n = Bt3(1): BUTTON n: TOP n,tl+60: LEFT n,lfb: WIDTH n,90: HEIGHT n,25
CAPTION n, "Renommer": ON_CLICK n, Renom
n = Bt4(1): BUTTON n: TOP n,tl+90: LEFT n,lfb: WIDTH n,90: HEIGHT n,25
CAPTION n, "Copier": ON_CLICK n, Copie
n = Bt5(1): BUTTON n: TOP n,tl+120: LEFT n,lfb: WIDTH n,90: HEIGHT n,25
CAPTION n, "Supprimer": ON_CLICK n, Suppr
n = Bt6(1): BUTTON n: TOP n,tl+150: LEFT n,lfb: WIDTH n,90: HEIGHT n,25
CAPTION n, "Exécuter": ON_CLICK n, Exec
' n = Bt9(1): BUTTON n: TOP n,tl+hl-50: LEFT n,lfb: WIDTH n,90: HEIGHT n,50
' CAPTION n, "Quitter": ON_CLICK n, Fin
2D_FILL_COLOR 128,255,128: 2D_PEN_WIDTH 1
2D_CIRCLE lfb+45,tl+hl-45,20
PRINT_LOCATE lfb+42,tl+hl-52: PRINT "1"
nof% = 1: rc$(nof%) = DIR_CURRENT$: GOSUB Dir

END
' =============================================================================
Fin:
TERMINATE
' +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Main:
IF nfen = 1
    w0 = w: h0 = h
ELSE
    IF sens = 0
        w0 = 2*w: h0 = h
    ELSE
        w0 = w: h0 = 2*h -50
    END_IF
END_IF
WIDTH 0, w0: HEIGHT 0, h0
CAPTION 21, "  Une fenêtre"
CAPTION 22, "  Deux fenêtres côte-à-côte"
CAPTION 23, "  Deux fenêtres superposées"
IF nfen = 1
    CAPTION 21, CHR$(7)+" Une fenêtre"
ELSE
    IF sens = 0
        CAPTION 22, CHR$(7)+" Deux fenêtres côte-à-côte"
    ELSE
        CAPTION 23, CHR$(7)+" Deux fenêtres superposées"
    END_IF
END_IF
RETURN
' +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Dir:
CLEAR Edl(nof%): ITEM_ADD Edl(nof%), DIR_CURRENT$
CLEAR F_List(nof%)
IF nodir% = 0
    CLEAR D_List(nof%)
    IF LEN(DIR_CURRENT$) > 3 THEN ITEM_ADD D_List(nof%), preced$
END_IF
IF DIR_CURRENT$ = "C:\Documents and Settings"
    ITEM_ADD D_List(nof%), usname$: GOTO sdi
END_IF
a$ = FILE_FIND_FIRST$
WHILE a$ <> "_"
    IF FILE_EXISTS(a$) = 0
        IF nodir% = 0 THEN ITEM_ADD D_List(nof%), a$: ' répertoire
    ELSE
        ITEM_ADD F_LIST(nof%), a$: ' fichier
    END_IF
    a$ = FILE_FIND_NEXT$
END_WHILE
sdi:
IF nodir% = 0
    i% = COUNT(D_List(nof%))
    IF ITEM_READ$(D_List(nof%), 1) = preced$ THEN i% = i% - 1
    a$ = STR$(i%)+" répertoires,  "
    a$ = a$ + STR$(COUNT(F_List(nof%)))+" fichiers,  "
    EXECUTE_WAIT "Cmd.exe /c DIR >" + fvol$
    FILE_OPEN_READ 1, fvol$
    WHILE FILE_EOF(1) = 0
        FILE_READLN 1, b$
        IF MID$(b$, 18, 7) = "fichier"
            b$ = LTRIM$(MID$(b$, 28, 100)): EXIT_WHILE
        END_IF
    END_WHILE
    FILE_CLOSE 1
    k% = INSTR(b$, "ÿ")
    WHILE k% > 0: b$ = LEFT$(b$, k%-1)+"."+MID$(b$,k%+1,100)
    k% = INSTR(b$, "ÿ"): END_WHILE
    ITEM_ADD Edl(nof%), a$ + b$
    ITEM_ADD D_List(nof%), STRING$(15,"-")+" VOLUMES "+STRING$(15, "-")
    GOSUB Volumes
END_IF
rc$(nof%) = DIR_CURRENT$
nodir% = 0
RETURN
' +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Chrep:
' Sélection d'un répertoire
i% = NUMBER_CLICK: nof% = 1: IF i% = D_List(2) THEN nof% = 2
a$ = ITEM_INDEX$(D_List(nof%)): ' répertoire cliqué
IF LEFT$(a$, 5) = "-----" THEN RETURN: ' (clic sur le séparateur)
IF MID$(a$,2,1) = ":"
    a$ = LEFT$(a$,2) + "\": ' clic sur un volume
ELSE
    IF a$ = " " + CHR$(24)
        ' répertoire 'parent'
        a$ = DIR_CURRENT$
        FOR i% = LEN(a$) TO 1 STEP -1
            IF MID$(a$, i%, 1) = "\" THEN EXIT_FOR
        NEXT i%
        a$ = LEFT$(a$, i%-1): IF LEN(a$) = 2 THEN a$ = a$ + "\"
    END_IF
END_IF
DIR_CHANGE a$
CLEAR Edl(nof%): ITEM_ADD EDl(nof%), DIR_CURRENT$
rc$(nof%) = DIR_CURRENT$
GOSUB Dir
RETURN
' +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Chfic:
' Sélection d'un fichier
i% = NUMBER_CLICK
nof% = 1: IF i% = F_List(2) THEN nof% = 2: ' n° fenêtre active (1 ou 2)
DIR_CHANGE rc$(nof%)
IF atf% = 1
    ' sélection multiple en cours, clic de fin de sélection
    IF nof% <> fsel% THEN atf% = 0: GOTO Nmult: 'fenêtre différente ...
    i% = SCANCODE: ' pour forcer la relecture du scancode
    IF SCANCODE <> 160 THEN atf% = 0: GOTO Nmult: ' (touche Maj relâchée)
    k% = F_List(nof%)
    xs2 = ITEM_INDEX(k%)
    nsel% = 0
    FOR i% = xs1 TO xs2
        nsel% = nsel% + 1: sel%(nsel%) = i%
        a$ = ITEM_READ$(k%, i%)
        ITEM_DELETE k%, i%
        ITEM_INSERT k%, i%, sqm$ + a$: ' pour affichage de la sélection
    NEXT i%
    atf% = 0
    RETURN
END_IF
Nmult:
IF copy% = 1
    ' copie en instance
    copy% = 0
    IF rco$ = rc$(nof%)
        MESSAGE "copie dans le même répertoire, abandon !"
        RETURN
    END_IF
    IF nsel% > 0
        k% = F_List(fsel%): ' fenêtre de la sélection
        FOR i% = 1 TO nsel%
            a$ = MID$(ITEM_READ$(k%, sel%(i%)), LEN(sqm$)+1, 500)
            IF LEN(rco$) > 3
                fco$ = rco$ + "\" + a$
            ELSE
                fco$ = rco$ + a$
            END_IF
            EXECUTE_WAIT "Cmd.exe /c COPY " + fco$
        NEXT i%
        GOSUB Razsel
    ELSE
        EXECUTE_WAIT "Cmd.exe /c COPY " + fco$
    END_IF
    nodir% = 1: GOSUB Dir
ELSE
    IF nfen = 2
        COLOR F_List(nof%), 255,192,192: ' fenêtre active (dernier clic)
        IF n = 1
            COLOR F_List(2), 255,255,255
        ELSE
            COLOR F_List(1), 255,255,255
        END_IF
    END_IF
    k% = F_List(nof%): ' fenêtre active
    xs1 = ITEM_INDEX(k%): ' élément cliqué
    IF nsel% > 0 THEN GOSUB Razsel: ' raz de la sélection éventuelle en cours
    i% = SCANCODE: ' pour forcer la relecture du scancode
    IF SCANCODE = 160: ' touche Maj enfoncée (pour sélection multiple)
        IF nsel% > 0 THEN GOSUB Razsel
        fsel% = nof%: ' fenêtre de la sélection
        atf% = 1
    END_IF
END_IF
RETURN
' +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Razsel:
' effacement de la sélection multiple en cours
k% = F_List(fsel%): ' fenêtre de la dernière sélection
FOR i% = 1 TO nsel%
    j% = sel%(i%): a$ = ITEM_READ$(k%, j%)
    IF LEFT$(a$, LEN(sqm$)) = sqm$
        a$ = MID$(a$, LEN(sqm$)+1, 500)
        ITEM_DELETE k%, j%
        ITEM_INSERT k%, j%, a$
    END_IF
NEXT i%
nsel% = 0
RETURN
' +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Fenetres:
IF CLICKED(21) = 1: ' 1 fenêtre
    IF nfen = 1 THEN RETURN
    nfen = 1
    DELETE Edl(2): DELETE D_List(2): DELETE F_List(2)
ELSE: ' 2 fenêtres
  IF CLICKED(22) = 1: ' côte à côte
      IF nfen = 2
          IF sens = 0 THEN RETURN
      ELSE
          LIST Edl(2): LIST D_List(2): LIST F_List(2)
      END_IF
      sens = 0
  ELSE: ' superposées
      IF nfen = 2
          IF sens = 1 THEN RETURN
      ELSE
          LIST Edl(2): LIST D_List(2): LIST F_List(2)
      END_IF
      sens = 1
  END_IF
  nfen = 2
END_IF
GOSUB Main
IF nfen = 2
    IF sens = 0
        tp = tl: lp = w+10
    ELSE
        tp = h-20: lp = 10
    END_IF
    n=Edl(2): LEFT n,lp: TOP n,tp-36: WIDTH n,w-30: HEIGHT n, 32
    FONT_BOLD n: FONT_COLOR n, 64,0,0
    n=D_List(2): LEFT n,lp: TOP n,tp: WIDTH n,wl: HEIGHT n,hl
    COLOR n,255,255,128: FONT_BOLD n: FONT_COLOR n,0,0,255: ON_CLICK n, Chrep
    n=F_List(2): LEFT n,wl+lp+10: TOP n,tp: WIDTH n,wl: HEIGHT n,hl: ON_CLICK n, Chfic
    2D_TARGET_IS 0: 2D_PEN_WIDTH 6: 2D_PEN_COLOR 0,128,128: ' séparateur
    IF sens = 0
        x1 = w: y1 = 0: x2 = x1: y2 = h
    ELSE
        x1 = 0: y1 = h-54: x2 = w0: y2 = h-54
    END_IF
    2D_LINE x1,y1,x2,y2: ' séparateur
    xc = 2*wl+lp+65: yc = tp+hl-45
    2D_PEN_WIDTH 1: 2D_PEN_COLOR 0,0,0: 2D_FILL_COLOR 128,255,128::2D_CIRCLE xc,yc,20
    PRINT_LOCATE xc-3,yc-7: PRINT "2"
    rc$(2) = "C:\": nof% = 2: GOSUB Dir
END_IF
RETURN
' +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Voir:
i% = ITEM_INDEX(F_List(nof%)): IF i%<1 THEN RETURN
a$ = ITEM_INDEX$(F_List(nof%))
c$ = UPPER$(RIGHT$(a$,4))
IF c$ = ".BMP" OR c$ = ".JPG" OR c$ = ".GIF" OR c$ = ".TGA" OR c$ = ".TIF"
    EXECUTE_WAIT iv$ + a$ + " /info=C:\Temp\info"
    FILE_OPEN_READ 1, "C:\Temp\info"
    WHILE FILE_EOF(1) = 0
        FILE_READLN 1, b$
        IF LEFT$(b$, 16) = "Image dimensions"
            b$ = MID$(b$, 20, 100): i% = INSTR(b$, " "): x1 = VAL(LEFT$(b$,i%-1))
            b$ = MID$(b$, i%+3,100): j% = INSTR(b$, " "): y1 = VAL(LEFT$(b$,j%-1))
            EXIT_WHILE
        END_IF
    END_WHILE
    FILE_CLOSE 1: FILE_DELETE "C:\Temp\info"
    IF c$ = ".GIF" OR c$ = ".TGA" OR c$ = ".TIF"
        b$ = "C:\Temp\ImgTmp.jpg"
        EXECUTE_WAIT iv$ + a$ + " /convert=" + b$
        a$ = b$
    END_IF
    IF OBJECT_EXISTS(95) = 1 THEN DELETE 95
    FORM 95: TOP 95,100: LEFT 95,100: WIDTH 95,360: HEIGHT 95, 370
    CAPTION 95, ITEM_INDEX$(F_List(nof%)) + " " + STR$(x1) + "x" + STR$(y1)
    PICTURE 98: PARENT 98,95: TOP 98,0:LEFT 98,0
    IF x1 > y1
        WIDTH 98,340: HEIGHT 98,INT(340*y1/x1)
    ELSE
        HEIGHT 98,320: WIDTH 98,INT(320*x1/y1)
    END_IF
    FILE_LOAD 98, a$: STRETCH_ON 98
    BUTTON 99: PARENT 99,95:TOP 99,280: LEFT 99,270: WIDTH 99,70
    CAPTION 99, "OK": ON_CLICK 99, Fvo
    BUTTON 100: PARENT 100,95:TOP 100,305:LEFT 100,270: WIDTH 100,70
    CAPTION 100, "IrfanView": ON_CLICK 100, Irfan
    a$ = ITEM_INDEX$(F_List(nof%))
ELSE
    nol% = 0: hex% = 0
    FORM 95: TOP 95,50: LEFT 95,50: WIDTH 95,650: HEIGHT 95, 900
    COLOR 95,192,192,255
    LIST 96: PARENT 96, 95: TOP 96, 20: WIDTH 96, 633: HEIGHT 96, 840
    BUTTON 97: PARENT 97, 95: HEIGHT 97,21: CAPTION 97, "N°s de lignes"
    BUTTON 98: PARENT 98, 95: LEFT 98, 77: HEIGHT 98,21: CAPTION 98, "Mode Hexa"
    BUTTON 99: PARENT 99,95: LEFT 99, 154: HEIGHT 99,21: CAPTION 99, "Stop"
    HIDE 99
    BUTTON 100: PARENT 100,95: LEFT 100, 231: HEIGHT 100,21: WIDTH 100, 50
    FONT_SIZE 100,12: FONT_BOLD 100: CAPTION 100, CHR$(26)+"|  |"+CHR$(27)+" "
    BUTTON 101: PARENT 101,95: LEFT 101, 285: HEIGHT 101,21: WIDTH 101, 50
    FONT_SIZE 101,12: FONT_BOLD 101: CAPTION 101, "|"+CHR$(27)+"  "+CHR$(26)+"| "
    BUTTON 105: PARENT 105, 95: LEFT 105,554: HEIGHT 105,21: CAPTION 105, "Quitter"
    ON_CLICK 97, Nlg: ON_CLICK 98, HexDec
    ON_CLICK 100, Wlis: ON_CLICK 101, Wlis: ON_CLICK 105,Fvo
    FILEBIN_OPEN_READ 1, a$: sz = FILEBIN_SIZE(1): FILEBIN_CLOSE 1
    CAPTION 95, a$+ " " + STR$(sz) + "  octets."
    FILE_LOAD 96, a$
END_IF
RETURN
' +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Irfan:
EXECUTE_WAIT iv$ + a$
RETURN
' +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Wlis:
j% = WIDTH(95): i% = WIDTH(96)
IF CLICKED(100) = 1
    IF i% > 400 THEN WIDTH 95, j%-100: WIDTH 96, i%-100
ELSE
    IF j% < (SCREEN_X-100) THEN WIDTH 95, j%+100: WIDTH 96, i%+100
END_IF
RETURN
' +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Nlg:
IF hex% = 1 THEN RETURN
CLEAR 96
IF nol% = 1
    FILE_DELETE f$: nol% = 0: FILE_LOAD 96, a$: SHOW 97
ELSE
    f$ = "C:\Temp\Lig.tmp"
    k% = 0
    FILE_OPEN_READ 1, a$: FILE_OPEN_WRITE 2, f$
    WHILE FILE_EOF(1) = 0
        FILE_READLN 1, b$: k% = k% + 1
        FILE_WRITELN 2, RIGHT$("  "+STR$(k%),4)+": " + b$
    END_WHILE
    FILE_CLOSE 1: FILE_CLOSE 2: FILE_LOAD 96, f$
    nol% = 1
END_IF
RETURN
' +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
HexDec:
CLEAR 96
IF hex% = 1
    hex% = 0: CAPTION 98, "Mode Hexa": FILE_LOAD 96, a$
    SHOW 97: SHOW 100: SHOW 101
ELSE
    f$ = "C:\Temp\Lig.tmp"
    FILEBIN_OPEN_READ 1, a$
    FONT_NAME 96, "Lucida Console": FONT_SIZE 96, 10
    sz = FILEBIN_SIZE(1): ad = 0
    PROGRESS_BAR 110: PARENT 110,95: TOP 110,2: LEFT 110, 230:WIDTH 110,325
    MIN 110,0: MAX 110, sz
    SHOW 99: HIDE 97: HIDE 100: HIDE 101
    hex% = 1: CAPTION 98, "Mode Texte"
    FOR ad = 0 TO sz-1 step 16
        POSITION 110, ad
        FILEBIN_HEXA_READ 1, 16, d$
        b$ = RIGHT$("0000"+HEX$(ad),5)+":  ": c$ = ""
        FOR i% = 1 TO LEN(d$) STEP 2
            k% = ad+(i%-1)/2+1
            IF k%>sz
                c$ = c$ + " ": b$ = b$ + "  "
            ELSE
                v$ = MID$(d$, i%, 2)
                j% = HEX(v$): IF j%<32 THEN j% = 46
                c$ = c$ + CHR$(j%): b$ = b$ + v$ + " "
            END_IF
            IF i% = 7 OR i% = 15 OR i% = 23 THEN b$ = b$ + " "
        NEXT i%
        ITEM_ADD 96, b$ + " " + c$: DISPLAY
        IF CLICKED(99) = 1
            ITEM_ADD 96, "  ... Conversion Hexa stoppée par l'utilisateur ! ..."
            EXIT_FOR
        END_IF
    NEXT ad
    FILEBIN_CLOSE 1: DELETE 110
    HIDE 99
END_IF
RETURN
' +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Fvo:
DELETE 95
IF FILE_EXISTS("C:\Temp\Lig.tmp")= 1 THEN FILE_DELETE "C:\Temp\Lig.tmp"
RETURN
' +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Propr:
i% = ITEM_INDEX(F_List(nof%)): IF i%<1 THEN RETURN
a$ = ITEM_INDEX$(F_List(nof%))
IF LEN(rc$(nof%)) > 3
    f$ = rc$(nof%) + "\" + a$
ELSE
    f$ = rc$(nof%) + a$
END_IF
EXECUTE_WAIT "Cmd.exe /c DIR " + f$ + " /-C /X >" + "C:\Temp\Lig.tmp"
FILE_OPEN_READ 1, "C:\Temp\Lig.tmp"
WHILE FILE_EOF(1) = 0
    FILE_READLN 1, b$
    IF b$ <> "" AND LEFT$(b$, 1) <> " "
        dw$ = LEFT$(b$, 10)+MID$(b$,12,6): ' date dernière écriture
        ta$ = LTRIM$(MID$(b$, 18, 18)): ' taille
        nc$ = RTRIM$(MID$(b$, 37, 12)): ' nom court éventuel
        EXIT_WHILE
    END_IF
END_WHILE
FILE_CLOSE 1
EXECUTE_WAIT "Cmd.exe /c DIR " + f$ + "/TC >" + "C:\Temp\Lig.tmp"
FILE_OPEN_READ 1, "C:\Temp\Lig.tmp"
WHILE FILE_EOF(1) = 0
    FILE_READLN 1, b$
    IF b$ <> "" AND LEFT$(b$, 1) <> " "
        cw$ = LEFT$(b$, 10)+MID$(b$,12,6): ' date création
        EXIT_WHILE
    END_IF
END_WHILE
FILE_CLOSE 1: FILE_DELETE "C:\Temp\Lig.tmp"
c$ = CHR$(13) + CHR$(10)
b$ = f$ + c$ + c$ + "Taille:" + CHR$(9)+CHR$(9)+ta$ + " octets"
b$ = b$ + c$ + "Création:" +  CHR$(9)+cw$
b$ = b$ + c$ + "Dern.écriture:" + CHR$(9)+dw$
IF nc$ <> ""
    b$ = b$ + c$ + "Nom court:" + CHR$(9)+nc$
END_IF
EXECUTE_WAIT "Cmd.exe /c ATTRIB " + f$ + " >" + fvol$
FILE_OPEN_READ 1, fvol$: FILE_READLN 1, a$: FILE_CLOSE 1: FILE_DELETE fvol$
b$ = b$ + c$ + "Attributs:" + CHR$(9)+LEFT$(a$,13)
MESSAGE b$
RETURN
' +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Renom:
i% = ITEM_INDEX(F_List(nof%)): IF i%<1 THEN RETURN
a$ = ITEM_INDEX$(F_List(nof%))
c$ = MESSAGE_INPUT$("RENOMMER "+a$,"Nouveau nom:",a$)
IF c$ = a$ THEN RETURN: ' inchangé ou cancel
FILE_RENAME a$, c$: nodir% = 1: GOSUB Dir
RETURN
' +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Copie:
IF nsel% = 0
    i% = ITEM_INDEX(F_List(nof%)): IF i%<1 THEN RETURN
    a$ = ITEM_INDEX$(F_List(nof%))
ELSE
    a$ = "la sélection"
END_IF
IF nfen = 1
    c$ = MESSAGE_INPUT$("COPIE de "+a$,"Répertoire destinataire:","")
    IF c$ = "" THEN RETURN: ' inchangé ou cancel
    IF nsel% > 0
        k% = F_List(fsel%): ' fenêtre de la sélection
        FOR i% = 1 TO nsel%
            a$ = MID$(ITEM_READ$(k%, sel%(i%)), LEN(sqm$)+1, 500)
            EXECUTE_WAIT "Cmd.exe /c COPY " + a$ + " " + c$
        NEXT i%
        GOSUB Razsel
    ELSE
        EXECUTE_WAIT "Cmd.exe /c COPY " + a$ + " " + c$
    END_IF
ELSE
    rco$ = rc$(nof%): ' répertoire d'origine de la copie
    IF LEN(rco$) > 3
        fco$ = rco$ + "\" + a$
    ELSE
        fco$ = rco$ + a$
    END_IF
    copy% = 0
    b$ = "Copie de " + fco$ + CHR$(13)+CHR$(10)+CHR$(13)+CHR$(10)
    b$ = b$ +"clic 'Yes', puis clic un élément quelconque du répertoire destinataire"+CHR$(13)+CHR$(10)
    b$ = b$ + "(ou 'No': abandon)"+CHR$(13)+CHR$(10)
    i% = MESSAGE_CONFIRMATION_YES_NO(b$)
    IF i% = 1 THEN copy% = 1: ' copie en instance
END_IF
RETURN
' +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Suppr:
IF nsel% = 0
    i% = ITEM_INDEX(F_List(nof%)): IF i%<1 THEN RETURN
    a$ = ITEM_INDEX$(F_List(nof%))
    b$ = "Désirez-vous vraiment supprimer définitivement ce fichier:"
    b$ = b$+CHR$(13)+CHR$(10)+CHR$(13)+CHR$(10)+DIR_CURRENT$ + "\" + a$ + " ?"
ELSE
    b$ = "Désirez-vous vraiment supprimer définitivement tous les fichiers sélectionnés ?"
END_IF
i% = MESSAGE_CONFIRMATION_YES_NO(b$)
IF i% = 1
    IF nsel% = 0
        FILE_DELETE DIR_CURRENT$ + "\" + a$
    ELSE
        FOR i% = 1 TO nsel%
            a$ = MID$(ITEM_READ$(k%, sel%(i%)), LEN(sqm$)+1, 500)
            FILE_DELETE DIR_CURRENT$ + "\" + a$
        NEXT i%
        GOSUB Razsel
    END_IF
    nodir% = 1: GOSUB Dir
END_IF
RETURN
' +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Exec:
i% = ITEM_INDEX(F_List(nof%)): IF i%<1 THEN RETURN
a$ = ITEM_INDEX$(F_List(nof%))
EXECUTE_WAIT a$
RETURN
' +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Volumes:
IF inivol% = 0
  b$ = CHR$(13)+CHR$(10)
  ' script vbs
  a$ = "Dim net, shell, computer, fso, WMISet,oWinnt"+b$
  a$=a$+"Dim fst, fichier"+b$
  a$=a$+"Set fst    = CreateObject("+CHR$(34)+"Scripting.FileSystemObject"+CHR$(34)+")"+b$
  a$=a$+"Set fichier = fst.CreateTextFile("+CHR$(34)+fvol$+CHR$(34)+")"+b$
  a$=a$+"Set net    = Wscript.CreateObject("+CHR$(34)+"WScript.Network"+CHR$(34)+")"+b$
  a$=a$+"Set shell  = WScript.CreateObject("+CHR$(34)+"WScript.Shell"+CHR$(34)+")"+b$
  a$=a$+"Set fso    = WScript.CreateObject("+CHR$(34)+"Scripting.FileSystemObject"+CHR$(34)+")"+b$
  a$=a$+"computer = net.ComputerName"+b$
  a$=a$+"set WMISet = GetObject("+CHR$(34)+"winmgmts:{impersonationLevel=impersonate}!//"+CHR$(34)+" & Computer).ExecQuery _"+b$
  a$=a$+"("+CHR$(34)+"SELECT * FROM Win32_LogicalDisk"+CHR$(34)+")"+b$
  a$=a$+"Message = "+CHR$(34)+""+CHR$(34)+" "+b$
  a$=a$+"For each Disk in WMISet"+b$
  a$=a$+"    Capa = Disk.Size"+b$
  a$=a$+"    If Capa <> "+CHR$(34)+""+CHR$(34)+" Then"+b$
  a$=a$+"        Name = Disk.VolumeName"+b$
  a$=a$+"        If Message <> "+CHR$(34)+""+CHR$(34)+" Then Message = Message & VBCRLF"+b$
  a$=a$+"        Message = Message & Disk.Name & "+CHR$(34)+" "+CHR$(34)+" & Name"+b$
  a$=a$+"    End if"+b$
  a$=a$+"Next"+b$
  a$=a$+"fichier.WriteLine (Message)"+b$
  a$=a$+"fichier.Close"+b$
  a$=a$+"wscript.quit"
  FILE_OPEN_WRITE 1, fscr$: FILE_WRITEBUF 1, a$, LEN(a$): FILE_CLOSE 1
  inivol% = 1
END_IF
EXECUTE_WAIT "Wscript.exe " + fscr$
FILE_ADD D_List(nof%), fvol$: FILE_DELETE fvol$
RETURN
' +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
UserName:
b$ = CHR$(13)+CHR$(10)
a$="Dim objnet, fst, fichier" + b$
a$=a$+"Set fst    = CreateObject("+CHR$(34)+"Scripting.FileSystemObject"+CHR$(34)+")"+b$
a$=a$+"Set fichier = fst.CreateTextFile("+CHR$(34)+fvol$+CHR$(34)+")"+b$
a$=a$+"Set objNet = CreateObject("+CHR$(34)+"WScript.NetWork"+CHR$(34)+")"+b$
a$=a$+"fichier.write(objNet.UserName)"
FILE_OPEN_WRITE 1, fscr$: FILE_WRITEBUF 1, a$, LEN(a$): FILE_CLOSE 1
EXECUTE_WAIT "Wscript.exe " + fscr$
FILE_OPEN_READ 1, fvol$: FILE_READLN 1, usname$: FILE_CLOSE 1
FILE_DELETE fvol$: FILE_DELETE fscr$
RETURN
' +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Aide:
b$ = CHR$(13)+CHR$(10)
a$ = CHR$(9)+"- EXPLORATEUR DE RÉPERTOIRES ET FICHIERS -"+b$+b$
a$=a$+" MENU AFFICHAGE"+b$
a$=a$+"Affichage optionnel de deux fenêtres indépendantes, côte à côte ou superposées,"+b$
a$=a$+"pour permettre l'exploration de deux répertoires indépendamment l'un de l'autre."+b$+b$
a$=a$+" ACTIONS"+b$
a$=a$+"Les boutons sont communs aux deux fenêtres éventuelles."+b$
a$=a$+"L'action correspondant au libellé du bouton s'exécute sur le dernier fichier"+b$
a$=a$+"qui a été sélectionné, quelle que soit sa fenêtre."+b$
a$=a$+"Dans le cas de deux fenêtres affichées, la fenêtre de la dernière sélection effectuée"+b$
a$=a$+"est colorée en rouge clair."+b$+b$
a$=a$+"COPIE : quel que soit le répertoire destinataire, la copie de fichier ne supprime"+b$
a$=a$+"pas le fichier d'origine (ce que fait Windows quand c'est sur le même volume)."+b$
a$=a$+"Il s'agit bien ici d'une copie, et non d'un transfert."+b$+b$
a$=a$+"Pour les fonctions COPIER' et 'SUPPRIMER', il est possible de sélectionner une"+b$
a$=a$+"série de fichiers consécutifs, par la méthode classique: maintenir la touche 'Maj'"+b$
a$=a$+"enfoncée en cliquant sur le 1er et le dernier fichier de la série (après défilement"+b$
a$=a$+"éventuel, sans relâcher la touche Maj)."+b$
a$=a$+"Les fichiers sélectionnés seront repérés par un point en tête de leur nom."+b$
a$=a$+"L'action choisie ensuite s'effectuera sur la série entière."+b$+b$
a$=a$+"VOIR : s'il s'agit d'une image BMP, JPG, GIF, TGA, TIF, celle-ci est affichée dans une"+b$
a$=a$+"fenêtre, pour tous les autres fichiers l'affichage se fait en mode 'texte', avec"+b$
a$=a$+"conversion possible en hexadécimal (en bascule)."+b$
a$=a$+"Pour l'affichage en hexadécimal, il est possible de stopper la conversion"+b$
a$=a$+"à tout moment par appui sur la touche 'Stop' (cas des fichiers de grande taille)."+b$
a$=a$+"En mode texte, il est possible d'élargir ou de rétrécir la fenêtre d'affichage"+b$
a$=a$+"à l'aide de deux boutons."
MESSAGE a$
RETURN
' +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Remarque:
Je n'ai pas utilisé la nouvelle fonction Disk_Exists, qui me cause des erreurs sur certains volumes, mais un script vbs incorporé. La seule ressource externe utilisée est IrfanView, pour les dimensions d'images, et Notepad2 à remplacer par Notepad si on ne l'a pas (différence principale: l'affichage des numéros de lignes).
Les manoeuvres se font dans C:\Temp.
On pourrait développer l'affichage des propriétés, c'est à voir.

Màj 14/10: modification sur le bouton 'Voir', ajout de l'hexadécimal.
Màj 16/10: ajout de la sélection multiple, pour 'Copier' et 'Supprimer'
Màj 17/10: ajout de la DLL de Nardo, pour pouvoir explorer 'Documents and Settings' !!!
ReMaj du 17: remplacement de la dll annexe par un script vbs intégré en datas. Tout est donc dans le source.
(+ inversion dans les 'Propriétés' entre les dates de création et dernière écriture)
18/10: ajout du nb de répertoires, de fichiers, et de la taille totale, plus quelques petites modifs.
19/10: Voir: ajout des formats images GIF, TGA et TIF, en mode texte possibilité de modifier la largeur de la fenêtre d'affichage. + des bricoles.


Dernière édition par JL35 le Mer 19 Oct 2011 - 18:36, édité 13 fois
Revenir en haut Aller en bas
Jicehel

Jicehel


Nombre de messages : 5947
Age : 52
Localisation : 77500
Date d'inscription : 18/04/2011

Explorateur Empty
MessageSujet: Re: Explorateur   Explorateur EmptyJeu 13 Oct 2011 - 22:14

Joli. Il ne m'affiche pas le contenu de tous les répertoires, mais je n'ai pas le temps de regarder pourquoi ce soir. (Exemple sur C, il ne m'affiche pas le contenu de Document and settings)
Revenir en haut Aller en bas
JL35




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

Explorateur Empty
MessageSujet: Re: Explorateur   Explorateur EmptyJeu 13 Oct 2011 - 22:26

Oui, je n'avais pas été jusqu'au bout de mes tests, mais c'est probablement rédhibitoire, les fonctions FILE_FIND de Panoramic ne permettent sans doute pas de récupérer le contenu des dossiers système 'cachés'.
Et c'est bien embêtant ...

Il y a peut-être un paramètrage Windows à changer, je regarde ça... mais je doute.
L'explorateur Windows ne m'affiche même pas le répertoire Documents and Settings

J'ai décoché une case dans les paramètres Windows (Masquer les fichiers protégés du système d'exploitation, la case 'Afficher les fichiers, dossiers et lecteurs cachés' était déjà cochée), et maintenant l'explorateur Windows m'affiche Documents and Settings, mais l'accès du contenu est interdit (verrouillé).
D'un autre côté, ce n'est pas un répertoire (sous Win 7) mais une 'Junction', il paraît que ça renvoie sur 'Users'...
d'après une recherche google, beaucoup ont des problèmes avec ce répertoire...
Revenir en haut Aller en bas
JL35




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

Explorateur Empty
MessageSujet: Re: Explorateur   Explorateur EmptyVen 14 Oct 2011 - 16:57

14/10 ajout de l'affichage hexadécimal dans la fonction 'Voir', ajout du bouton 'Exécuter'.
Le bouton Propriétés donne la taille, les dates/heures de création et dernière écriture, et le nom court éventuel du fichier.
Revenir en haut Aller en bas
JL35




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

Explorateur Empty
MessageSujet: Re: Explorateur   Explorateur EmptyDim 16 Oct 2011 - 16:43

16/10 ajout essentiellement de la possibilité de sélection multiple d'une série de fichiers consécutifs, dans le cas des fonctions 'Copier' et 'Supprimer'.
Revenir en haut Aller en bas
659_minifly




Nombre de messages : 590
Age : 76
Localisation : Valenciennes Nord
Date d'inscription : 29/04/2010

Explorateur Empty
MessageSujet: Re: Explorateur   Explorateur EmptyDim 16 Oct 2011 - 19:38

Super Jl35.
Revenir en haut Aller en bas
JL35




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

Explorateur Empty
MessageSujet: Re: Explorateur   Explorateur EmptyDim 16 Oct 2011 - 20:36

Enfin un lecteur, merci Minifly ! Very Happy
Revenir en haut Aller en bas
Jicehel

Jicehel


Nombre de messages : 5947
Age : 52
Localisation : 77500
Date d'inscription : 18/04/2011

Explorateur Empty
MessageSujet: Re: Explorateur   Explorateur EmptyDim 16 Oct 2011 - 23:26

pfff, ces programmeurs, je te jure, c'est qu'ils seraient exigeants Smile
On s'absente quelques heures, ils metent une version et ils voudraient tout de suite avoir une retour, je te jure ....
Bon sinon sans déconner, c'est du bon boulot, plus qu'à ajouter la conversion de masse, le renommage de masse (déjà fait dans un précédent source)... Heu, je crois que ceet explorateur, je vais me le garder, il va finir par un beaucoup plus sympa que celui de Windows ^^
Revenir en haut Aller en bas
Severin




Nombre de messages : 547
Localisation : Braunschweig / Germany
Date d'inscription : 13/12/2010

Explorateur Empty
MessageSujet: Re: Explorateur   Explorateur EmptyLun 17 Oct 2011 - 3:28

Hallo JL35,
sehr gute gestaltetes Programm. Habe aber einen Fehlermeldung.
-- (35) Name Already defined. Line 471 -- Embarassed
Kann es nicht testen. Ich bin diese Woche auf Dienstreise,
werde dann am Wochenende meine neue Version einstellen.
Severin

Hello JL35,
very well-designed program. But an error message.
- (35) Name Already defined. Line 471 - Embarassed
Can not test it. I'm on a business trip this week,
will be set on the weekend my new version.
Severin

Bonjour JL35,
très bien conçu programme. Mais un message d'erreur.
- (35) nom déjà défini. Ligne 471 - Embarassed
Impossible de le tester. Je suis en voyage d'affaires cette semaine,
sera mis sur le week-end ma nouvelle version.
Severin
Revenir en haut Aller en bas
Nardo26

Nardo26


Nombre de messages : 2294
Age : 56
Localisation : Valence
Date d'inscription : 02/07/2010

Explorateur Empty
MessageSujet: Re: Explorateur   Explorateur EmptyLun 17 Oct 2011 - 5:39

Intéressant,

Reste le problème du répertoire : "Documents and Settings" et cela sera parfait ! Wink

Mais pour cela il faudrait connaitre le profil de l'utilisateur qui a ouvert la session...

Utilisation de GetUsername() en delphi donc en passant par une dll (je la fait si vraiment ça intéresse quelqu'un)
ou peut être attendre que Jack veuille bien rajouter cette variable système dans Panoramic...
Wink

Revenir en haut Aller en bas
http://nardo26.lescigales.org
Jicehel

Jicehel


Nombre de messages : 5947
Age : 52
Localisation : 77500
Date d'inscription : 18/04/2011

Explorateur Empty
MessageSujet: Re: Explorateur   Explorateur EmptyLun 17 Oct 2011 - 7:49

Et comment Nardo que ça nous interesse Smile Le programme commence vraiment à être super pratique, une petite fonction pour traiter les répertoires spéciaux serait bien pratique.
Revenir en haut Aller en bas
Nardo26

Nardo26


Nombre de messages : 2294
Age : 56
Localisation : Valence
Date d'inscription : 02/07/2010

Explorateur Empty
MessageSujet: Re: Explorateur   Explorateur EmptyLun 17 Oct 2011 - 9:15

C'est fait ! Wink
Voici le programme de démo :
Code:
dll_on "Utils.dll"
dim result
dim UserName$:UserName$=string$(250," ")

caption 0,"Test DLL username"

result=dll_call2("GetUserFromWindows",adr(UserName$),len(UserName$))
UserName$=TRIM$(UserName$)
result=message_confirmation_ok("Le nom de l'utilisateur est : "+UserName$)
dll_off
end

La dll: http://nardo26.lescigales.org/panoramic/DLL/utils/delphi/Utils.dll
Et les sources de la DLL : http://nardo26.lescigales.org/panoramic/DLL/utils/delphi

EDIT du 01/11/11 : Modif des liens d'accès à la DLL


Dernière édition par Nardo26 le Mar 1 Nov 2011 - 20:21, édité 1 fois
Revenir en haut Aller en bas
http://nardo26.lescigales.org
Jicehel

Jicehel


Nombre de messages : 5947
Age : 52
Localisation : 77500
Date d'inscription : 18/04/2011

Explorateur Empty
MessageSujet: Re: Explorateur   Explorateur EmptyLun 17 Oct 2011 - 9:58

Merci Nardo ^^
Revenir en haut Aller en bas
JL35




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

Explorateur Empty
MessageSujet: Re: Explorateur   Explorateur EmptyLun 17 Oct 2011 - 14:29

J'arrive...
Mais qu'est-ce qu'ils ont tous à vouloir absolument aller dans 'Documents and Settings', alors que c'est interdit par monsieur Windows lui-même !

Bon, je regarde ta suggestion Nardo, mais je suis un peu réticent sur le principe de la dll, je sais des fois on ne peut pas faire autrement, mais si je pouvais intégrer tout ça dans un seul module (comme j'ai fait avec mon script vbs), ça m'embête d'être obligé de joindre des fichiers annexes.

@Severin je ne comprends pas ton erreur, pour moi la ligne 471 correspond à 'END_IF'... mais il est vrai que j'ai fait quelques modifications (mineures) depuis... peux-tu dire quelle est le libellé de la ligne qui fait une erreur ? (what is the contents of the line which causes the error ?) Very Happy


@Nardo j'ai essayé ta dll, ça marche très bien et j'obtiens bien le UserName du pc (tiens, c'est justement le mien, quelle coïncidence !)
Mais qu'est-ce que je fais avec ça pour m'autoriser à aller dans Documents and Settings ??? je ne vois pas bien le rapport scratch
(je suis un béotien pour ce qui est du système).
Revenir en haut Aller en bas
Nardo26

Nardo26


Nombre de messages : 2294
Age : 56
Localisation : Valence
Date d'inscription : 02/07/2010

Explorateur Empty
MessageSujet: Re: Explorateur   Explorateur EmptyLun 17 Oct 2011 - 14:42

C'est pas interdit, du moment que tu essaye d'ouvrir le répertoire appartenant à la session...

Maintenant l'utilisation de la DLL est provisoire si Jack veut bien rajouter cette variable système... Wink

PS : Si tu génères une application, tous tes fichiers seront inclus dans l'executable...


Revenir en haut Aller en bas
http://nardo26.lescigales.org
JL35




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

Explorateur Empty
MessageSujet: Re: Explorateur   Explorateur EmptyLun 17 Oct 2011 - 14:43

On s'est croisés (j'ai édité)...
Oui certes, dans l'application tout est inclus, mais je préfère ne donner que des sources que chacun peut adapter à sa guise...

@Nardo
bon je crois voir où tu veux en venir.
Le UserName est le répertoire qui est juste dessous Documents and Settings, et à partir de là on peut continuer tranquillement l'exploration...
C'est bien ça ?
Revenir en haut Aller en bas
Nardo26

Nardo26


Nombre de messages : 2294
Age : 56
Localisation : Valence
Date d'inscription : 02/07/2010

Explorateur Empty
MessageSujet: Re: Explorateur   Explorateur EmptyLun 17 Oct 2011 - 14:50


C'est pour cette raison que je donne les sources de la DLL.
Quand on y regarde de plus près, ce n'est pas bien compliqué à réaliser.
Delphi 7 est gratuit... et on trouve plein de petits exemples sur le net (Google est mon ami)... sans compter qu'on peut utiliser un autre basic pour faire des DLL...
Faire la DLL en Delphi m'a pris 5 minutes... Wink
Revenir en haut Aller en bas
http://nardo26.lescigales.org
JL35




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

Explorateur Empty
MessageSujet: Re: Explorateur   Explorateur EmptyLun 17 Oct 2011 - 15:27

Bon j'ai ajouté ta dll (voir plus haut), et on peut maintenant descendre 'Documents and Settings', si la dll est présente (il faut ajuster son chemin d'accès en tête: variable usnd$).
Si elle n'est pas présente, ça ne fait pas d'erreur, simplement on ne pourra pas aller descendre dans ce répertoire.

C'est mieux comme ça ?

(je vais regarder le source de la dll, si je peux faire ça dans un script vbs intégré...)

Oui, bon, j'ai jeté un oeil sur tes sources, la signification ne saute pas aux yeux, déjà il faut 4 fichiers sources ??... pour quelqu'un qui ne connaît rien ni en pascal ni en delphi...
je verrai sur google si je trouve un script tout fait Very Happy
Revenir en haut Aller en bas
Nardo26

Nardo26


Nombre de messages : 2294
Age : 56
Localisation : Valence
Date d'inscription : 02/07/2010

Explorateur Empty
MessageSujet: Re: Explorateur   Explorateur EmptyLun 17 Oct 2011 - 15:38

Le fichier qui t'interesse a l'extension *.dpr
Revenir en haut Aller en bas
http://nardo26.lescigales.org
JL35




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

Explorateur Empty
MessageSujet: Re: Explorateur   Explorateur EmptyLun 17 Oct 2011 - 17:00

Merci Nardo.

En farfouillant un peu, j'ai concocté un script vbs qui va bien, très court (s/p UserName) et qui fait l'affaire, donc tout est dans le source, pas de module externe, c'est sans doute moins élégant mais ça semble efficace.

J'ai regardé ton source, mais ne connaissant pas la langue ça ne m'aide pas beaucoup.

Comme quoi il y a toujours plusieurs solutions à un problème donné, c'est ce qui fait le charme de la programmation !

Tu disais plus haut que 'Documents and Settings' n'est pas interdit mais je suis pourtant administrateur et seul utilisateur de mon pc, et je me suis donné toutes les autorisations possibles, à ma connaissance et dans l'explorateur windows (7) je suis bien bloqué sur 'C:\Documents and Settings' n'est pas accessible. Accès refusé'. Idem en mode console.
Revenir en haut Aller en bas
Nardo26

Nardo26


Nombre de messages : 2294
Age : 56
Localisation : Valence
Date d'inscription : 02/07/2010

Explorateur Empty
MessageSujet: Re: Explorateur   Explorateur EmptyLun 17 Oct 2011 - 17:22

Tu as accès sous windows7:
C:\Utilisateurs\Nom\Mes documents\
Revenir en haut Aller en bas
http://nardo26.lescigales.org
JL35




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

Explorateur Empty
MessageSujet: Re: Explorateur   Explorateur EmptyLun 17 Oct 2011 - 17:43

Tu as évidemment raison, c'est cette histoire de 'Documents and Settings' et 'Utilisateurs' qui renvoient au même répertoire qui me trouble.
J'ai du mal à comprendre pourquoi, suivant la façon dont on l'adresse, c'est interdit ou autorisé !

Quoi qu'il en soit, maintenant on peut accéder aux deux !
Revenir en haut Aller en bas
Nardo26

Nardo26


Nombre de messages : 2294
Age : 56
Localisation : Valence
Date d'inscription : 02/07/2010

Explorateur Empty
MessageSujet: Re: Explorateur   Explorateur EmptyMar 18 Oct 2011 - 19:24

Voir les liens symboliques...
http://www.zebulon.fr/astuces/230-creer-un-lien-symbolique-sous-windows.html

il existe un utilitaire sous XP avec interface graphique qui permet d'en faire (je me souviens plus le nom).
Ca peut être utilise dans certains cas, mais il faut faire attention a ce que l'on fait...
Wink
Revenir en haut Aller en bas
http://nardo26.lescigales.org
JL35




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

Explorateur Empty
MessageSujet: Re: Explorateur   Explorateur EmptyMar 18 Oct 2011 - 21:14

Merci pour le lien, mais à priori je ne vois pas trop quelle pourrait en être l'utilité pour moi... et comme tu dis, dans ce domaine il vaut mieux bien savoir ce qu'on fait si on ne veut pas tout casser !
Revenir en haut Aller en bas
Nardo26

Nardo26


Nombre de messages : 2294
Age : 56
Localisation : Valence
Date d'inscription : 02/07/2010

Explorateur Empty
MessageSujet: Re: Explorateur   Explorateur EmptyMar 18 Oct 2011 - 22:34

Ca sert surtout à créer des raccourcis pendant le développement:
Imagines que tu as un projet qui se trouve ici:
D:\Mes documents\Nardo\Développement\Langage\Panoramic\Projets\MonProjet\...
Une fois que tu as tapé tout cela, tu t'arrêtes et tu va boire un café (ou une tisane pour ceux qui aiment pas Wink )

En faisant un lien, tu fais en sorte que, par exemple:
D:\MonProjet\ pointe en réalité sur le répertoire que j'ai écrit au dessus.
Dans le cas de Panoramic cela n'a pas vraiment d'importance mais si tu utilises un autre langage avec des utilitaires en ligne de commande sous DOS (compilo, linker,etc...), tu trouveras vite l’intérêt le jour ou tu jongleras avec plusieurs version de prog.

Par exemple:
Jack à plusieurs versions de TOONIC en fct du moteur 3D. On peut supposer qu'il possède le même source de TOONIC mais qu'il utilise un lien symbolique pour pointer sur le moteur 3D qu'il désire... (je suppose hein? il y a d'autres solutions)

Perso, au boulot, nous travaillons sous le système d'exploitation QNX et les liens symboliques sont énormément utilisés. Il est vrai que sous Windows, ce n'est pas quelque chose de très répandu
(il y a que Micro$oft qui l'utilise Pour définir ce fameux "Mes documents" qui pointe en réalité sur C:\User\###\My Documents en fct de la session, de la langue,etc...)





Revenir en haut Aller en bas
http://nardo26.lescigales.org
Contenu sponsorisé





Explorateur Empty
MessageSujet: Re: Explorateur   Explorateur Empty

Revenir en haut Aller en bas
 
Explorateur
Revenir en haut 
Page 1 sur 2Aller à la page : 1, 2  Suivant
 Sujets similaires
-
» Explorateur
» Le petit explorateur
» Un petit explorateur
» Petit explorateur
» Explorateur particulier

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC :: PANORAMIC :: Vos sources, vos utilitaires à partager-
Sauter vers: