Novembre 2024 | Lun | Mar | Mer | Jeu | Ven | Sam | Dim |
---|
| | | | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | | Calendrier |
|
|
| Volumes montés (suite) | |
| | Auteur | Message |
---|
JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Volumes montés (suite) Ven 8 Mar 2019 - 10:44 | |
| Un tout petit gadget, mais plus simple que ce qui avait été proposé précédemment, pour connaître la liste des volumes montés, avec lettre, nom, taille totale, taille libre. Le résultat est dans le presse-papier, une ligne par volume, éléments séparés par des ';' - Code:
-
DriveList() message clipboard_string_paste$ end
SUB Drivelist() ' Liste des volumes montés -> clipboard ' 1 ligne par volume: Lettre;Nom;Taille totale;Taille dispo DIM_LOCAL mm%,i%,k%,a$,b$,c$,ltr$,typ$,lib$,tot$,nom$ mm% = 1900 MEMO mm%: HIDE mm%: WIDTH mm%,600 EXECUTE_WAIT "cmd.exe|/c wmic logicaldisk list brief | clip" CLIPBOARD_PASTE mm%: c$ = "" FOR i% = 2 TO COUNT(mm%) a$ = RTRIM$(ITEM_READ$(mm%,i%)) IF LEN(a$) > 12 ltr$ = LEFT$(a$,2): typ$ = MID$(a$,11,1): b$ = RIGHT_POS$(a$,22) k% = INSTR(b$," "): lib$ = LEFT$(b$,k%-1): b$ = RIGHT_POS$(a$,50) k% = INSTR(b$," "): tot$ = LEFT$(b$,k%-1): nom$ = RIGHT_POS$(a$,64) c$ = c$+ltr$+";"+nom$+";"+tot$+";"+lib$+CHR$(13)+CHR$(10) END_IF NEXT i% CLIPBOARD_STRING_COPY LEFT$(c$,LEN(c$)-2) DELETE mm% END_SUB | |
| | | Marc
Nombre de messages : 2466 Age : 63 Localisation : TOURS (37) Date d'inscription : 17/03/2014
| Sujet: Re: Volumes montés (suite) Ven 8 Mar 2019 - 11:03 | |
| Salut JL35 ! Merci de ton partage. Il y a un bug chez moi : PC utilisé : HP portable avec W10 64bits + SSD Je pars chercher les enfants au lycée, je ferai plus d'investigations plus tard. Bonne continuation ! | |
| | | silverman
Nombre de messages : 970 Age : 52 Localisation : Picardie Date d'inscription : 18/03/2015
| Sujet: Re: Volumes montés (suite) Ven 8 Mar 2019 - 12:38 | |
| Moi, il me manque des lecteurs Appelle cette sub à la fin de la ligne 14 pour le voir: - Code:
-
sub read_parameters(a$) DIM_LOCAL k%,c$,ltr$,typ$,lib$,tot$,nom$ if a$<>"" a$=trim$(a$)+" " k%=instr(a$," ") ltr$ = trim$(LEFT$(a$,k%)) : a$ = ltrim$(right_pos$(a$,k%)) : k% = instr(a$," ") typ$ = trim$(LEFT$(a$,k%)) : a$ = ltrim$(right_pos$(a$,k%)) : k% = instr(a$," ") lib$ = trim$(LEFT$(a$,k%)) : a$ = ltrim$(right_pos$(a$,k%)) : k% = instr(a$," ") tot$ = trim$(LEFT$(a$,k%)) : a$ = ltrim$(right_pos$(a$,k%)) : k% = instr(a$," ") nom$ = trim$(LEFT$(a$,k%)) : a$ = ltrim$(right_pos$(a$,k%)) : k% = instr(a$," ") c$ = c$+ltr$+";"+nom$+";"+tot$+";"+lib$+CHR$(13)+CHR$(10) print c$ end_if end_sub | |
| | | papydall
Nombre de messages : 7017 Age : 74 Localisation : Moknine (Tunisie) Entre la chaise et le clavier Date d'inscription : 03/03/2012
| Sujet: Re: Volumes montés (suite) Ven 8 Mar 2019 - 12:52 | |
| Chez moi aussi même erreur que Marc. Modifier la ligne 18 (k%-1) par k% - Code:
-
k% = INSTR(b$," ") : tot$ = LEFT$(b$,k%-1) : nom$ = RIGHT_POS$(a$,64) Par - Code:
-
k% = INSTR(b$," ") : tot$ = LEFT$(b$,k%) : nom$ = RIGHT_POS$(a$,64)
L’affichage n’est pas fameux ! | |
| | | papydall
Nombre de messages : 7017 Age : 74 Localisation : Moknine (Tunisie) Entre la chaise et le clavier Date d'inscription : 03/03/2012
| Sujet: Re: Volumes montés (suite) Ven 8 Mar 2019 - 13:00 | |
| J’ai posté un code qui donne des informations sur les disques montés sur cette pageJe rappelle le code ici - Code:
-
rem ============================================================================ rem Info_Disc rem ============================================================================ dim i,n
picture 10 : full_space 10 : 2d_target_is 10 : print_target_is 10 font_bold 10 : font_size 10,12 : font_name 10,"arial" caption 0,"Info_Disc" for i = asc("A") to asc("Z") if disk_exists(chr$(i)) > 0 then n = n + 1 : Info_Disc(chr$(i),n) next i end rem ============================================================================ SUB Info_Disc(d$,i) dim_local taille,libre,rapport,g g = 1000/power(1024,3) taille = int(disk_kilo_size(d$) * g * 1000) : taille = taille/1000 libre = int(disk_kilo_free(d$) * g * 1000) : libre = libre /1000 rapport = 1-libre/taille 2d_fill_color 255,255,255 : print_locate 20,50+60*(i-1) : print d$ + ":" 2d_fill_color 200,150,050 : 2d_rectangle 50,50+60*(i-1),450,70+60*(i-1) 2d_fill_color 050,150,200 : 2d_rectangle 50,50+60*(i-1),450*rapport,70+60*(i-1) 2d_fill_color 255,255,255 : print_locate 45,80+60*(i-1) print str$(libre) + " Go libres sur " + str$(taille) + " Go" print_locate 20,20 : print "Informations sur les " + str$(i) + " disques durs montés sur votre système" END_SUB rem ============================================================================
- Resultat:
| |
| | | Marc
Nombre de messages : 2466 Age : 63 Localisation : TOURS (37) Date d'inscription : 17/03/2014
| Sujet: Re: Volumes montés (suite) Ven 8 Mar 2019 - 14:42 | |
| Suite de mes essais : Sous Windows 7, pas de plantage. Voici une copie d'écran du résultat : | |
| | | JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: Volumes montés (suite) Ven 8 Mar 2019 - 16:45 | |
| Perso je n'ai pas d'erreurs (sous Windows 7), mais au vu de ce que vous montrez, effectivement ça doit beaucoup dépendre de la configuration. Et je suggère fortement de laisser tomber cette solution et d'adopter celle proposée par le toujours génial papydall qui utilise des instructions Panoramic auxquelles je n'avais même pas pensé ! Donc voir le sujet adjacent de notre ami: Informations sur les disques durs montés sur votre système | |
| | | silverman
Nombre de messages : 970 Age : 52 Localisation : Picardie Date d'inscription : 18/03/2015
| Sujet: Re: Volumes montés (suite) Ven 8 Mar 2019 - 17:20 | |
| Elle est très bien cette sub, contrairement à 'dir_exists()' elle détecte tous les lecteurs présent! Et le bug provient d'une valeur négative passé à 'left$()' Voici une version corrigée: - Code:
-
DriveList() message clipboard_string_paste$ end
SUB Drivelist() ' Liste des volumes montés -> clipboard ' 1 ligne par volume: Lettre;Nom;Taille totale;Taille dispo DIM_LOCAL mm%,i%,k%,a$,b$,c$,ltr$,typ$,lib$,tot$,nom$ mm% = 1900 MEMO mm%: hide mm%: WIDTH mm%,600 EXECUTE_WAIT "cmd.exe|/c wmic logicaldisk list brief | clip" CLIPBOARD_PASTE mm%: c$ = "" FOR i% = 2 TO COUNT(mm%) a$ = TRIM$(ITEM_READ$(mm%,i%)) if a$<>"" a$=a$+" " k%=instr(a$," ") ltr$ = trim$(LEFT$(a$,k%)) : a$ = ltrim$(right_pos$(a$,k%)) : k% = instr(a$," ") typ$ = trim$(LEFT$(a$,k%)) : a$ = ltrim$(right_pos$(a$,k%)) : k% = instr(a$," ") lib$ = trim$(LEFT$(a$,k%)) : a$ = ltrim$(right_pos$(a$,k%)) : k% = instr(a$," ") tot$ = trim$(LEFT$(a$,k%)) : a$ = ltrim$(right_pos$(a$,k%)) : k% = instr(a$," ") nom$ = trim$(LEFT$(a$,k%)) : a$ = ltrim$(right_pos$(a$,k%)) : k% = instr(a$," ") ' if nom$<>"" then c$ = c$+ltr$+";"+nom$+";"+tot$+";"+lib$+CHR$(13)+CHR$(10) :' n'afficher que les lecteurs ayant un nom de volume c$ = c$+ltr$+";"+nom$+";"+tot$+";"+lib$+CHR$(13)+CHR$(10) :' afficher tous les lecteurs end_if NEXT i% CLIPBOARD_STRING_COPY LEFT$(c$,LEN(c$)-2) DELETE mm% END_SUB
| |
| | | jjn4
Nombre de messages : 2747 Date d'inscription : 13/09/2009
| Sujet: +++ Ven 8 Mar 2019 - 18:03 | |
| Voilà une bonne astuce pour explorer ses disques ! Bravo ! | |
| | | JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: Volumes montés (suite) Ven 8 Mar 2019 - 18:13 | |
| Merci silverman, c'est toi le meilleur, je n'avais pas approfondi au vu de la solution de papydall, mais finalement je préfère ma sub (améliorée par tes soins !). | |
| | | Contenu sponsorisé
| Sujet: Re: Volumes montés (suite) | |
| |
| | | | Volumes montés (suite) | |
|
Sujets similaires | |
|
| Permission de ce forum: | Vous ne pouvez pas répondre aux sujets dans ce forum
| |
| |
| |