Ecrire sur un périphérique usb à partir de son nom
moimael
Messages postés23Date d'inscriptionjeudi 28 décembre 2006StatutMembreDernière intervention27 août 2010
-
28 déc. 2006 à 13:35
moimael
Messages postés23Date d'inscriptionjeudi 28 décembre 2006StatutMembreDernière intervention27 août 2010
-
9 févr. 2007 à 23:08
Bonjour,
Voila je suis débutant en programmation et je developpe un petit logiciel pour le twin (pour ceux qui ne connaissent pas c'est le premier téléphone gsm-wifi de neuf telecom) .Pour l'instant il gère les notes et les photos (bien que pour les photos ca ne soit pas encore entierement fonctionel). Seulement, quand je veut envoyer une note vers le twin, je me sers de sa lettre de lecteur qui est D: sur mon pc. Je me doute bien que chez d'autres personnes, la lettre n'est pas la même. Pour rendre le logiciel compatible avec tous les pc, je voudrais donc savoir si il existe une autre méthode pour écrire sur un périphérique en se servant du nom du périphérique(tous les twin sont reconnus avec le nom MYPHONE quand ils sont connéctés) par exemple, au lieu de sa lettre.
Merci pour votre aide.
A voir également:
Ecrire sur un périphérique usb à partir de son nom
jmfmarques
Messages postés7666Date d'inscriptionsamedi 5 novembre 2005StatutMembreDernière intervention22 août 201427 28 déc. 2006 à 17:30
utilise donc la fonction GetLogicalDrives de la librairie kernel32 pour recenser tous les volumes présents et boucle sur ces volumes pour en extraire le nom en utilisant la fonction GetVolumeInformation de la librairie Kernel32 également.
Tu as tout( ce qu'il te faut comme exemple sur ALLAPI !
Si tu n'y parviens vraiment pas avec ces indications, je te code celà mais je préfèrerais te voir t'y mettre un peu...
jmfmarques
Messages postés7666Date d'inscriptionsamedi 5 novembre 2005StatutMembreDernière intervention22 août 201427 28 déc. 2006 à 17:50
Tiens,
Je t'ai "baclé" vite fait quelque-chose... dans l'esprit de mon message précédent !
A toi de l'analyser et de le perfectionner ou l'adapter... comme tu l'entends :
Private Declare Function GetVolumeInformation& Lib "kernel32" Alias "GetVolumeInformationA" _
(ByVal lpRootPathName As String, ByVal pVolumeNameBuffer As String, _
ByVal nVolumeNameSize As Long, lpVolumeSerialNumber As Long, _
lpMaximumComponentLength As Long, lpFileSystemFlags As Long, _
ByVal lpFileSystemNameBuffer As String, ByVal nFileSystemNameSize As Long)
Private Declare Function GetLogicalDrives Lib "kernel32" () As Long
Private Sub Command1_Click()
Dim LDs As Long, Cnt As Long, sDrives As String
LDs = GetLogicalDrives
sDrives = "Available drives:"
For Cnt = 0 To 25
If (LDs And 2 ^ Cnt) <> 0 Then
sDrives = sDrives + " " + Chr$(65 + Cnt)
Dim ser As Long, I As Long, j As Long
Dim z0 As String * 256
Dim z As String * 256
toto = Chr$(65 + Cnt)
Call GetVolumeInformation(toto + ":" & Chr$(0), z0, 256, 0, 0, 0, z, 256)
nomlect = Left$(z0, InStr(z0, Chr$(0)) - 1)
MsgBox toto & " " & nomlect
End If
Next Cnt
End Sub
jmfmarques
Messages postés7666Date d'inscriptionsamedi 5 novembre 2005StatutMembreDernière intervention22 août 201427 28 déc. 2006 à 18:10
Je ne connais pas de moyen plus simple ni (en tout état de cause) plus rapide que l'utilisation de l'API de Windows... (à moins que VB.Net n'offre du "plus mieux ! "
jmfmarques
Messages postés7666Date d'inscriptionsamedi 5 novembre 2005StatutMembreDernière intervention22 août 201427 28 déc. 2006 à 18:19
Il y aura bien un VB.Netiste pour transposer celà en VB.Net... (ce devrait être facile). S'il faut que je commente le code VB pour faciliter les choses, il n'y a qu'à demander.
jmfmarques
Messages postés7666Date d'inscriptionsamedi 5 novembre 2005StatutMembreDernière intervention22 août 201427 28 déc. 2006 à 18:30
Un dernier mot (je dois sortir) :
Pour répondre à ta question :
"La je dois avouer que je ne comprends pas trop comment me servir de ce que tu m'indique."
C'est simple : la boucle te donne la lettre (toto) et le nom (nomlect).
Quand tu trouve nomlect = "le_nom_que_tu_cherches", tu en connais dpnc la lettre (toto).
Si donc toto = "F", tu sais que ton "machin" est sur le disque F, pardi
moimael
Messages postés23Date d'inscriptionjeudi 28 décembre 2006StatutMembreDernière intervention27 août 2010 8 févr. 2007 à 23:02
J'ai trouvé un moyen bcp plus simple en vb.net, il fonctionne parfaitement, pour ceux que ca interresse :
For Each di As DriveInfo In DriveInfo.GetDrives()
If di.IsReady Then
If di.VolumeLabel = "MYPHONE" Then
Dim lettre As String
lettre = di.Name
End If
End If
Next