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
» Cacher la barre des tâches
par Klaus Aujourd'hui à 8:41

» quel est ce comportement de Panoramic_editor
par Oscaribout Aujourd'hui à 0:22

» Des FORM(s) Colorés
par Jean Claude Hier à 20:58

» Recherches dans un fichier texte
par JL35 Hier à 20:18

» Problème d'affichage des pages du forum (Résolu)
par Jean Claude Hier à 20:00

» Une "base de connaissance" - pour jouer ou plus si affinité
par Klaus Hier à 19:10

» Objet 3D_PLANE, réalisation d'un dé en 3D
par papydall Hier à 13:54

» Créer une application *.exe
par Yannick Ven 18 Mai 2018 - 20:01

» [RÉSOLU] Priorité affichage des objets : comment la définir?
par papydall Ven 18 Mai 2018 - 18:22

» Aucune différence entre ON_CLICK et ON_DOUBLE_CLICK
par Jean Claude Jeu 17 Mai 2018 - 8:37

» [Résolu] Récuperer les fonctions systeme de Panoramic
par Minibug Mar 15 Mai 2018 - 23:21

» Est-ce qu'un fichier est inclus dans l'application ?
par Yannick Mar 15 Mai 2018 - 12:04

» Création d'une application avec Panoramic_Editor
par Klaus Mar 15 Mai 2018 - 0:36

» Pour faire patienter
par Minibug Lun 14 Mai 2018 - 21:25

» Une copie de Panoramic Editeur
par Minibug Lun 14 Mai 2018 - 19:55

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Mai 2018
LunMarMerJeuVenSamDim
 123456
78910111213
14151617181920
21222324252627
28293031   
CalendrierCalendrier

Partagez | 
 

 Comment trouver les disques durs ou lecteurs du systeme ?

Aller en bas 
AuteurMessage
Minibug

avatar

Nombre de messages : 2833
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 : 11080
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 : 2833
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 : 6255
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 : 2833
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 : 2833
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 : 5905
Age : 67
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.free-boards.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/
Minibug

avatar

Nombre de messages : 2833
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
» [Résolu] Trojan.REZA, quelqu'un connait????
» Comment trouver un péage d'autoroute ?
» Comment connaitre le numéro FT associé à son numéro Bbox 09xxxxxxxx
» comment trouver une gare ?

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: