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 |
|
|
| Comment trouver les disques durs ou lecteurs du systeme ? | |
| | Auteur | Message |
---|
Minibug
Nombre de messages : 4570 Age : 58 Localisation : Vienne (86) Date d'inscription : 09/02/2012
| Sujet: Comment trouver les disques durs ou lecteurs du systeme ? Mar 10 Avr 2018 - 18:11 | |
| Bonjour à tous ! Je cherchais un moyen de déterminer quels disques ou supports style USB ou autres (C, D, G, etc..) sont présents sur le système. Et j'ai trouvé cette solution ! Il suffit de créer une boucle avec toutes les lettres de A à Z et de tester avec la commande DISK_EXISTS(N)=1 Où N correspond au code ASCII des lettres ( CHR$(N) ). C'est tout simple. CQFD ! - Code:
-
' teste l'existence des disques sur le système
DIM a%
FOR a%=65 TO 90 IF DISK_EXISTS(CHR$(a%))=1 THEN PRINT "le disque "+CHR$(a%)+" existe" NEXT a%
END | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Comment trouver les disques durs ou lecteurs du systeme ? Mar 10 Avr 2018 - 21:00 | |
| Très bien. C'est ce qu'on peut faire en Panoramic. Avec KGF.dll, tu peux faire ceci: - Code:
-
dim res% memo 1 : full_space 1 : bar_both 1 : font_name 1,"Courier" dll_on "KGF.dll" res% = dll_call0("GetVolumeList") clipboard_paste 1 end
* et obtenir ceci: Attention, néanmoins si, comme moi, tu as un drive réseau (mon WebDav). Dans ce cas, faudra être patient - le programme peut mettre plusieurs minutes à explorer le drive réseau. Mais pas d'inquiétude: le programme n'est pas planta. Le résultat finit par arriver... | |
| | | Minibug
Nombre de messages : 4570 Age : 58 Localisation : Vienne (86) Date d'inscription : 09/02/2012
| Sujet: Re: Comment trouver les disques durs ou lecteurs du systeme ? Mar 10 Avr 2018 - 21:47 | |
| Merci pour ces infos Klaus ! | |
| | | JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: Comment trouver les disques durs ou lecteurs du systeme ? Mar 10 Avr 2018 - 22:26 | |
| Et sans faire appel à des ressources externes (résultat dans le presse-papier): - Code:
-
SUB Diskinfo() ' Volumes actifs + taille totale + taille disponible (en Mo) -> clipboard ' 1 ligne par volume, de la forme ' X: NomVolume;Taille_totale;Taille_libre;Pourcentage_libre DIM_LOCAL q$,fb$,ret%,lect%,drv$,mm%,nn%,i%,k%,v$,a$,b$,t%,l%,p% q$ = CHR$(34)+"X"+CHR$(34) fb$ = "C:\TEMP\Tbat.bat": ' <===== TEMPORAIRE, AJUSTER ÉVENTUELLEMENT ! ======== FILE_OPEN_WRITE 9,fb$ FILE_WRITELN 9,"@echo off" ' infos sur les volumes si argument quelconque, sinon seulement les lettres de volumes FILE_WRITELN 9,"set INFO=%1" FILE_WRITELN 9,"call :Drive A B C D E F G H I J K L M N O P Q R S T U V W X Y Z" FILE_WRITELN 9,"set INFO=" FILE_WRITELN 9,"goto :EOF" FILE_WRITELN 9,":Drive" FILE_WRITELN 9,"vol %1: > nul 2>nul" FILE_WRITELN 9,"If ERRORLEVEL 1 goto Next" FILE_WRITELN 9,"if not "+q$+"%INFO%=="+q$+" (vol %1:) else echo %1:" FILE_WRITELN 9,":Next" FILE_WRITELN 9,"shift" FILE_WRITELN 9,"if NOT "+q$+"%1=="+q$+" goto :Drive" FILE_CLOSE 9 EXECUTE_WAIT "CMD.exe /C "+fb$+" | clip" FILE_DELETE fb$ mm% = 950: MEMO mm%: HIDE mm% CLIPBOARD_PASTE mm%: ' liste des lettres des volumes montés b$ = "" FOR i% = 1 TO COUNT(mm%) v$ = ITEM_READ$(mm%,i%) EXECUTE_WAIT "cmd.exe /c VOL "+v$+" | clip" a$ = CLIPBOARD_STRING_PASTE$: k% = INSTR(a$,"s'appelle"): nn% = 0 IF k% = 0 THEN k% = INSTR(a$,"n'a pas de nom"): IF k%>0 THEN nn% = 1 IF k%>0 AND v$<>"" a$ = RIGHT_POS$(a$,k%+10): k% = INSTR(a$,CHR$(13)) IF nn% = 0 a$ = v$+" "+LEFT$(a$,k%-1): ' lettre + nom du volume ELSE a$ = v$+" (pas de nom)" END_IF t% = DISK_KILO_SIZE(LEFT$(v$,1))/1000: ' taille totale en Moctets l% = DISK_KILO_FREE(LEFT$(v$,1))/1000: ' taille libre en Moctets p% = 100*l%/t%: ' pourcentage disponible b$ = b$+a$+";"+STR$(t%)+";"+STR$(l%)+";"+STR$(p%)+"% "+CHR$(13)+CHR$(10) END_IF NEXT i% CLIPBOARD_STRING_COPY b$ DELETE mm% END_SUB | |
| | | Minibug
Nombre de messages : 4570 Age : 58 Localisation : Vienne (86) Date d'inscription : 09/02/2012
| Sujet: Re: Comment trouver les disques durs ou lecteurs du systeme ? Mer 11 Avr 2018 - 0:03 | |
| Solution intéressante sauf que... | |
| | | Minibug
Nombre de messages : 4570 Age : 58 Localisation : Vienne (86) Date d'inscription : 09/02/2012
| Sujet: Re: Comment trouver les disques durs ou lecteurs du systeme ? Mer 11 Avr 2018 - 1:02 | |
| Merci pour vos conseils. Du coup j'ai ouvert un nouveau fil de discussion pour la création d'un explorateur de fichier. Je vous laisse le soin de le découvrir... | |
| | | papydall
Nombre de messages : 7017 Age : 74 Localisation : Moknine (Tunisie) Entre la chaise et le clavier Date d'inscription : 03/03/2012
| Sujet: Re: Comment trouver les disques durs ou lecteurs du systeme ? Mer 11 Avr 2018 - 1:20 | |
| @Maxibug J’ai posté un code qui répond à ta demande et tu y as toi-même participé. https://panoramic.1fr1.net/t5523-informations-sur-les-disques-durs-montes-sur-votre-systemeJe rappelle ce code - 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 ============================================================================
| |
| | | Minibug
Nombre de messages : 4570 Age : 58 Localisation : Vienne (86) Date d'inscription : 09/02/2012
| Sujet: Re: Comment trouver les disques durs ou lecteurs du systeme ? Mer 11 Avr 2018 - 7:28 | |
| Et bien maintenant je sais ou j'ai puisé mon inspiration... Merci Maître Papydall pour ce rappel. Sur toi que la paix soit ! | |
| | | Contenu sponsorisé
| Sujet: Re: Comment trouver les disques durs ou lecteurs du systeme ? | |
| |
| | | | Comment trouver les disques durs ou lecteurs du systeme ? | |
|
Sujets similaires | |
|
| Permission de ce forum: | Vous ne pouvez pas répondre aux sujets dans ce forum
| |
| |
| |