| Volumes montés | |
|
|
|
Auteur | Message |
---|
JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Volumes montés Sam 6 Nov 2010 - 14:39 | |
| Pour faire certaines sauvegardes, je cherche à savoir si un certain volume (une clé usb en l'occurence) est bien présent sur le pc. Il y a bien des moyens (fonctions msdos) qui scrutent et analysent les volumes montés, mais tous ceux que j'ai affichent une fenêtre noire désagréable à chaque volume examiné (voir https://panoramic.1fr1.net/vos-sources-vos-utilitaires-a-partager-f2/liste-des-volumes-montes-et-actifs-t570.htm?highlight=volumes : il y manque d'ailleurs un dim a$). Là je m'adresse directement à Klaus: aurais-tu dans tes archives une dll qui renverrait la liste des volumes montés, avec le support, leur label éventuel, et pourquoi pas leur capacité et leur taux d'occupation, leur type etc (qui peut le plus peut le moins). J'ai bien des moyens en vbs, mais j'aimerais en panoramic pur (+dll). | |
|
| |
Invité Invité
| Sujet: Re: Volumes montés Sam 6 Nov 2010 - 15:35 | |
| Je sais pas si c'est ce que tu cherche, mais essais ça : - Code:
-
label bidon:dim i
combo 1 for i=65 to 90 item_add 1,chr$(i)+":" next i on_click 1,bidon
end
bidon: if dir_exists(text$(1))=1 cls:print_locate 10,50:print "Le répertoire existe" else cls:print_locate 10,50:print "Le répertoire n'existe pas" end_if return |
|
| |
Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Volumes montés Sam 6 Nov 2010 - 15:44 | |
| J'ai fait un petit module Delphi qui fait cela. Voici le lien: http://www.4shared.com/file/KBP5QjDu/Project1.htmlSi tu as besoin de rtl60.bpl ou vcl60.bpl, charge-les sur mon site, page "externes", "bibliothèques de service" pour le forum browser. Si ce programme te convient, je peux le transformer en fonction DLL créant un petit fichier texte contenant ce tableau. | |
|
| |
JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: Volumes montés Sam 6 Nov 2010 - 15:45 | |
| Merci à tous les deux pour vos réponses. L'idée de Nicolas est intéressante, je la creuse un peu et je reviens. | |
|
| |
Invité Invité
| Sujet: Re: Volumes montés Sam 6 Nov 2010 - 16:14 | |
| J'en avais besoin, je fais un logiciel de Backup et une installation entièrement en Panoramic ! |
|
| |
JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: Volumes montés Sam 6 Nov 2010 - 16:27 | |
| Finalement je crois que je vais utiliser un programme que j'ai fait en freebasic et qui fait l'affaire. En fait, ce qui m'intéresse c'est le NOM du volume, et je veux savoir où il est monté. Seulement j'ai voulu reprendre ton programme Nicolas, en simplifiant, pour afficher seulement les volumes valides, et ça ne marche pas sous ma forme à moi, le dir_exists part en erreur à chaque fois qu'il n'y a pas de volume monté, alors que chez toi il n'y a pas d'erreur. Je n'y comprends plus rien: - Code:
-
dim i for i = 67 to 90 IF dir_exists(chr$(i)+":") = 1 print chr$(i)+": existe" end_if next i end | |
|
| |
Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Volumes montés Sam 6 Nov 2010 - 16:32 | |
| Si tu entends par "nom du volume" le "label", alors ma solution est la bonne, car en Panoramic pur, tu ne le trouveras pas... | |
|
| |
JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: Volumes montés Sam 6 Nov 2010 - 16:41 | |
| A la rigueur je peux faire un "DIR" du volume dans un fichier, la 1ère ligne contient le label du volume (mais il y a toujours cette fenêtre noire msdos qui s'ouvre fugitivement, à chaque Dir, c'est pas beau).
Par contre je ne comprends pas du tout pourquoi Nicolas ne part pas en erreur avec son dir_exists, et moi si !
Je vais de ce pas regarder ton module Klaus. J'ai un petit problème, Project1.exe réclame vclx60 (et non vcl60) pour démarrer... | |
|
| |
Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Volumes montés Sam 6 Nov 2010 - 17:10 | |
| | |
|
| |
JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: Volumes montés Sam 6 Nov 2010 - 17:18 | |
| Ca marche bien Klaus, j'ai bien le tableau avec toutes les infos, mais comment récupérer le résultat pour le traiter par programme ? | |
|
| |
Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Volumes montés Sam 6 Nov 2010 - 17:43 | |
| Je te propose de réaliser une petite DLL ne contenant que cette fonction, à laquelle tu passes un seul paramètre: le nom d'un fichier texte à créer. La routine déposera alors le tableau dans ce fichier texte, ou alternativement, je peux le copier dans le presse-papier. C'est au choix. | |
|
| |
JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: Volumes montés Sam 6 Nov 2010 - 17:54 | |
| Ma foi Klaus, je ne voudrais pas abuser de ta bonté, mais puisque tu le proposes si gentiment ( ) Je verrais bien le résultat au choix dans un fichier texte ou dans le clipboard si le nom de fichier est "-clip" ou quelque chose comme ça... tu vois j'ai fait le plus dur, te reste plus qu'à coder ! J'ai réessayé en panoramic pur, mais je ne trouve rien qui ne parte pas en erreur s'il n'y a pas de volume. PS je t'ai laissé un message sur ton site, pour autre chose (wintextprint). | |
|
| |
Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Volumes montés Sam 6 Nov 2010 - 18:01 | |
| Je vais le réaliser comme ça, et je posterai un message dès que ce sera prêt.
J'ai bien eu le message pour WinTextPrint, et je regarde cela...
| |
|
| |
JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: Volumes montés Sam 6 Nov 2010 - 18:02 | |
| Merci Klaus, t'es un chef. Ouf, j'ai vérifié le programme de Nicolas, il y a bien les mêmes erreurs s'il n'y a pas de volume monté sur certains périphériques, ça me rassure parce que je n'y comprenais plus rien. Donc c'est inexploitable par programme (c'est une erreur Windows et non Panoramic, donc non récupérable par on_error...), seulement en mode conversationnel. | |
|
| |
JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: Volumes montés Sam 6 Nov 2010 - 22:17 | |
| @Klaus, au sujet de WinTextPrint, ne cherche plus, j'ai trouvé, je te mets une explication sur ton site. | |
|
| |
dragonno
Nombre de messages : 341 Localisation : Près de Toulouse Date d'inscription : 22/01/2009
| Sujet: Re: Volumes montés Sam 6 Nov 2010 - 23:13 | |
| Je sais qu'avec un fichier .com on peut utiliser le code erreur donné par un fichier batch (.bat) donc si panoramic peut lancer un fichier batch qui va tester la présence d'un lecteur et s'il sait aussi lire le code erreur renvoyé par le fichier batch alors tu as ta solution par là.
| |
|
| |
Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Volumes montés Dim 7 Nov 2010 - 17:48 | |
| C'est fait : j'ai mis une DLL en ligne contenant une seule fonction qui récupère le tableau des volumes connectés et le place dans le presse-papier. C'est la dll GVL.dll contenant une fonction GetVolumeList. Appel: dim i% dll_on "GVL.dll" i% = dll_call0("GetVolumeList") dll_off Le tableau est alors dans clipboard_string_pasete$ ou on peut le récupérer par cliboard_paste n_memo%. Le tableau se présente comme suit: Le source Panoramic correspondant est: - Code:
-
label click_1 dim i% dim handle_DLL%, nom$, funct$, n%,j%
button 1 : top 1,10 : left 1,10 : width 1,200 : caption 1,"Liste dans Presse-Papier" : on_click 1,click_1 memo 3 : top 3,70 : left 3,10 : width 3,600 : height 3,400 font_name 3,"Terminal" : font_size 3,10
end
click_1: dll_on "GVL.dll" i% = dll_call0("GetVolumeList") dll_off clear 3 item_add 3,clipboard_string_paste$ return Sur mon site, j'ai séparé maintenant KGF.dll des DLL's "bonus" - c'est sur la ligne suivante. Et cette DLL est dans les DLL's bonus, et la doc est à jour. Le programme ci-dessus est dans la distri. Comme tu vois, il reconnait la présence d'un média, sans message d'erreur à l'écran. | |
|
| |
JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: Volumes montés Dim 7 Nov 2010 - 20:56 | |
| Merci beaucoup Klaus (et aussi pour ta rapidité), ça va m'être très utile, et j'espère à d'autres également. | |
|
| |
Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Volumes montés Dim 7 Nov 2010 - 21:12 | |
| Il n'y a pas de quoi - ça me fait plaisir que mes codes puissent servir à d'autres !
| |
|
| |
JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: Volumes montés Dim 7 Nov 2010 - 21:20 | |
| ... mais j'ai toujours des problèmes avec les fichiers .bpl, ma dll ne veut pas se charger car elle ne trouve pas rtl60.bpl. Mes sources sont dans: C:\Langages\Panoramic Mes dll dans: C:\Langages\Panoramic\DLL et j'appelle avec: DLL_ON "C:\Langages\Panoramic\DLL\GVL.dll" j'ai mis ces fichiers .bpl dans les deux répertoires, pour voir, mais il ne les trouve pas... Dommage qu'il faille tous ces fichiers externes qu'on ne sait jamais trop où mettre pour qu'ils soient trouvés... | |
|
| |
Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Volumes montés Dim 7 Nov 2010 - 21:33 | |
| Contrairement à ce que je pensais, il faut apparemment placer ces *.bpl dans \system\system32\ sous XP.
Je vais chercher un moyen de les inclure dans l'exécutable. | |
|
| |
Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Volumes montés Dim 7 Nov 2010 - 21:53 | |
| J'ai remis en ligne une version linkée en principe avec tous les bpl nécessaires. A essayer chez toi - chez moi, ils sont forcément là à cause de la présence de l'environnement de développement.
Mais, l'exécutable est maintenant NETTEMENT plus gros, alors... | |
|
| |
Nardo26
Nombre de messages : 2294 Age : 56 Localisation : Valence Date d'inscription : 02/07/2010
| Sujet: Re: Volumes montés Dim 7 Nov 2010 - 22:05 | |
| Bizarre pour ma part, j'ai mis les bpl (pour la recherche dans le forum) dans le répertoire du .bas et cela fonctionne...(sous Win7...)
| |
|
| |
Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Volumes montés Dim 7 Nov 2010 - 22:18 | |
| Oui, théoriquement, ils doivent être, soit: - danns le répertoire de démarrage du programme lance. S'il s'agit d'un exe, c'est le répertoire de l'exe, s'il s'agit d'un bas, c'est le répertoire de l'éditeur Panoramic ! - soit dans \system\system32\ - soit dans l'arborescence de l'environnement de développement Delphi si celui-ci est présent Dans tous les cas, pour le forum browser par exemple, j'ai mis une version en ligne qui est exécutable et linkée AVEC les bpl...
Je viens de mettre une version de GVL.dll en ligne linkée avec tous les bpl. A tester - chez moi, ça marche, bien sûr. | |
|
| |
Nardo26
Nombre de messages : 2294 Age : 56 Localisation : Valence Date d'inscription : 02/07/2010
| Sujet: Re: Volumes montés Dim 7 Nov 2010 - 22:29 | |
| juste une petite rectification: Je n'utilise pratiquement plus l'editeur de panoramic et ma dll (dans le cas de l'analyse de prog) se trouve avec le source dans un répertoire sur une clé USB et cela fonctionne...sous Win7 ET XP...
Je pense que c'est encore une histoire avec le répertoire actif par défaut... Un essai simple à faire avec l'éditeur de panoramic. 1- Tu mets la dll dans le même répertoire que le source 2- Tu supprimes celle qui se trouve dans le répertoire de pano 3- Tu ouvres ton fichier source 4- Tu sauvegardes le source (tu valide : tu forces la réécriture du source sur le disque) 5- Tu lances le prog --> cela fonctionne !! c'est l'étape 4 qui fait que pano arrive à trouver la dll....
| |
|
| |
Contenu sponsorisé
| Sujet: Re: Volumes montés | |
| |
|
| |
| Volumes montés | |
|