papydall
Nombre de messages : 7017 Age : 74 Localisation : Moknine (Tunisie) Entre la chaise et le clavier Date d'inscription : 03/03/2012
| Sujet: GetLogicalDrives Dim 18 Mai 2014 - 1:04 | |
| Pour déterminer l’existence d’un disque sur le PC, Panoramic dispose de la fonction DISK_EXISTS()Mais de quel type de disque s’agit-il ? Fixe, amovible, CD-Rom, USB , … ? La documentation de Panoramic n’en dit pas un mot. Pour savoir, lancez ce code et comparez l’affichage. - Code:
-
rem ============================================================================ rem GetLogicalDrives rem ============================================================================ rem Déterminer la liste des lecteurs logiques disponibles sur le PC. rem Un appel à la fonction GetLogicalDrives de la kernel.dll renvoie une valeur rem décimale. rem Cette valeur décimale correspond à une valeur en binaire sur 32 bits. rem Le bit le moins significatif (le 1er bit à partir de la droite) correspond rem au lecteur A:\, le bit suivant correspond au lecteur B:\ et aisi de suite. rem Le 26ème bit correspond au lecteur Z:\. rem Les bits de 27 à 32 sont forcement à zéro. rem ---------------------------------------------------------------------------- rem Pour déterminer quels sont les bits à 1, on utilse la fonction BIN_AND(v1,v2). rem Avec v1 = la valeur de retour de GetLogicalDrives rem et v2 = 2 à la puissance le numéro du bit à tester. rem Si le résultat de BIN_AND(v1,v2) est positif, cela prouve que le bit à tester rem est mis à 1 et que le lecteur qui lui correspond existe. rem ============================================================================ dim ret%,lecteur,driv$ width 0,1000 alpha 1 : left 1,10 : font_name 1,"Script MT Bold" : font_size 1,16 : font_color 1,0,0,255 alpha 2 : left 2,500 : font_name 2,"Script MT Bold" : font_size 2,16 : font_color 2,0,0,255 dll_on "kernel32.dll" ret% = dll_call0("GetLogicalDrives") driv$ = "Liste des lecteurs logiques disponibles sur le PC."+chr$(13)+ chr$(13) driv$ = driv$ + "Par GetLogicalDrives de kernell.dll" + chr$(13)+chr$(13) for lecteur = 0 to 25 if bin_and(ret%,power(2,lecteur))> 0 driv$ = driv$ + string$(30," ") +chr$(65+lecteur) + ":\ existe " + chr$(13) end_if next lecteur caption 1,driv$
dll_off rem ============================================================================
driv$ = "Liste des lecteurs logiques disponibles sur le PC."+chr$(13)+ chr$(13) driv$ = driv$ + "Par la fonction disk_exists de Panoramic" + chr$(13) + chr$(13) for lecteur = 0 to 25 if disk_exists (chr$(65+lecteur)) > 0 driv$ = driv$ + string$(30," ") +chr$(65+lecteur) + ":\ existe " + chr$(13) end_if next lecteur caption 2,driv$ rem ============================================================================
| |
|
JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: GetLogicalDrives Dim 18 Mai 2014 - 10:16 | |
| Merci papydall pour cette très intéressante fonction ! Et pour ne plus avoir cette désagréable erreur systématique qu'il faut valider pour un disque inexistant, en panoramic.
Je me la mets sous le coude pour me faire une petite sub, qui donnera optionnellement le label du disque éventuellement monté. Très bien pour les explorateurs de fichiers. | |
|
Jicehel
Nombre de messages : 5947 Age : 52 Localisation : 77500 Date d'inscription : 18/04/2011
| Sujet: Re: GetLogicalDrives Dim 18 Mai 2014 - 10:27 | |
| Je vous rappelle qu'Ygeronimi garde les procédures très utile sur le site du journal, je dis ça comme ça... | |
|
JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: GetLogicalDrives Dim 18 Mai 2014 - 10:58 | |
| j'ai un peu tendance à l'oublier... | |
|
Jicehel
Nombre de messages : 5947 Age : 52 Localisation : 77500 Date d'inscription : 18/04/2011
| Sujet: Re: GetLogicalDrives Dim 18 Mai 2014 - 11:13 | |
| C'est pas grave non plus... On fait ça entre amis juste pour partager entre nous et pour les gens qui veulent nous rejoindre et par ce que l'on a un endroit où les retrouver facilement. | |
|
papydall
Nombre de messages : 7017 Age : 74 Localisation : Moknine (Tunisie) Entre la chaise et le clavier Date d'inscription : 03/03/2012
| Sujet: Re: GetLogicalDrives Dim 18 Mai 2014 - 15:28 | |
| Bien. Bon début de journée : un JL35 satisfait de la très intéressante fonction que Papydall a partagé ; un Jicehel dont la mémoire est toujours bonne pour nous rappeler ce qu’on a tendance à oublier et un Bignono qui m’a discerné le titre de (dans un autre post) et qui, lui aussi, a intégré la très intéressante fonction GetLogicalDrives Que peut-on espérer de plus pour débuter sa journée de retraité en retraite ?, car il existe des retraités qui ne sont pas encore en retraite ! | |
|
jjn4
Nombre de messages : 2747 Date d'inscription : 13/09/2009
| Sujet: Re: GetLogicalDrives Dim 18 Mai 2014 - 16:37 | |
| | |
|
Contenu sponsorisé
| Sujet: Re: GetLogicalDrives | |
| |
|