FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC

Développement d'applications avec le langage Panoramic
 
AccueilAccueil  FAQFAQ  RechercherRechercher  S'enregistrerS'enregistrer  MembresMembres  GroupesGroupes  Connexion  
Derniers sujets
» Biomorphe de Pickover
par papydall Aujourd'hui à 0:49

» PanExpress : l'éditeur Panoramic avec création d'objet
par Minibug Dim 23 Sep 2018 - 22:14

» Planétarium virtuel.
par Pedro Alvarez Dim 23 Sep 2018 - 19:50

» Virus/Antivirus
par JL35 Dim 23 Sep 2018 - 10:55

» Calculatrice
par papydall Ven 21 Sep 2018 - 22:45

» Orbites de l’ensemble de Mandelbrot
par Minibug Ven 21 Sep 2018 - 21:32

» Demande pour Jack concernant PanExpress
par Minibug Ven 21 Sep 2018 - 11:04

» EPP_V01 éditeur pour Panoramic
par Minibug Mer 19 Sep 2018 - 21:03

» [RESOLU] Quelle ligne est sélectionnée dans SYNEDIT ?
par Jean Claude Mer 19 Sep 2018 - 21:02

» Petit coucou en passant !
par Minibug Dim 16 Sep 2018 - 15:03

» bug SEVERE fnc+sub : variables globales corrompus
par silverman Dim 16 Sep 2018 - 13:38

» Verrouiller un form en avant plan
par silverman Dim 16 Sep 2018 - 12:50

» Fin de l'aventure.
par Pedro Alvarez Sam 15 Sep 2018 - 18:16

» Demande d'explications Sur File_Write & File_writeln
par Jack Sam 15 Sep 2018 - 17:26

» MEMO avec des possibilités de commande
par Oscaribout Mer 12 Sep 2018 - 1:06

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Septembre 2018
LunMarMerJeuVenSamDim
     12
3456789
10111213141516
17181920212223
24252627282930
CalendrierCalendrier

Partagez | 
 

 Comment trouver les disques durs ou lecteurs du systeme ?

Aller en bas 
AuteurMessage
Minibug

avatar

Nombre de messages : 3030
Age : 51
Localisation : Vienne (86)
Date d'inscription : 09/02/2012

MessageSujet: Comment trouver les disques durs ou lecteurs du systeme ?   Mar 10 Avr 2018 - 18:11

Bonjour à tous ! cheers

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 !  drunken

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 ! Laughing

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
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://gpp.panoramic.free.fr
Klaus

avatar

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

MessageSujet: 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...
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
Minibug

avatar

Nombre de messages : 3030
Age : 51
Localisation : Vienne (86)
Date d'inscription : 09/02/2012

MessageSujet: Re: Comment trouver les disques durs ou lecteurs du systeme ?   Mar 10 Avr 2018 - 21:47

Merci pour ces infos Klaus ! Wink
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://gpp.panoramic.free.fr
JL35



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

MessageSujet: 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
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Minibug

avatar

Nombre de messages : 3030
Age : 51
Localisation : Vienne (86)
Date d'inscription : 09/02/2012

MessageSujet: Re: Comment trouver les disques durs ou lecteurs du systeme ?   Mer 11 Avr 2018 - 0:03

Solution intéressante sauf que...

Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://gpp.panoramic.free.fr
Minibug

avatar

Nombre de messages : 3030
Age : 51
Localisation : Vienne (86)
Date d'inscription : 09/02/2012

MessageSujet: 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... drunken
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://gpp.panoramic.free.fr
papydall

avatar

Nombre de messages : 6001
Age : 68
Localisation : Moknine (Tunisie) Entre la chaise et le clavier
Date d'inscription : 03/03/2012

MessageSujet: Re: Comment trouver les disques durs ou lecteurs du systeme ?   Mer 11 Avr 2018 - 1:20

@Maxibug    tongue

J’ai posté un code qui répond à ta demande et tu y as toi-même participé.

http://panoramic.1fr1.net/t5523-informations-sur-les-disques-durs-montes-sur-votre-systeme

Je 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 ============================================================================
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://papydall-panoramic.forumarabia.com/ En ligne
Minibug

avatar

Nombre de messages : 3030
Age : 51
Localisation : Vienne (86)
Date d'inscription : 09/02/2012

MessageSujet: 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. Wink

Sur toi que la paix soit ! Laughing Laughing Laughing
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://gpp.panoramic.free.fr
Contenu sponsorisé




MessageSujet: Re: Comment trouver les disques durs ou lecteurs du systeme ?   

Revenir en haut Aller en bas
 
Comment trouver les disques durs ou lecteurs du systeme ?
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» Ultra defrag : défragmenter vos disques durs
» Comment trouver les FORUM les plus récemment crées ?
» Comment trouver les outils de restauration
» comment trouver l'ID d'un forum pour l'intégrer à un formulaire ?
» comment trouver des thèmes facilement

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC :: PANORAMIC :: A l'aide!-
Sauter vers: