Détection de lecteur sur machine distante(VB)

Fermé
Combo - 30 août 2001 à 10:39
Dworf Messages postés 627 Date d'inscription lundi 2 juillet 2001 Statut Membre Dernière intervention 21 novembre 2005 - 30 août 2001 à 16:54
Salut!
Je pense avoir trouvé le code me servant à détecter automatiquement les disques durs présents sur une machine de mon réseau :

Public Function xIsDriveReady(ByVal DriveName As String) As Boolean
Dim objFileSys As Object
Dim objDrive As Object
Dim strDrive As String

On Error GoTo DriveError

If Left(DriveName, 1) = "\" Then
strDrive = DriveName ' If it's a network path, then let it as it is.
Else
strDrive = Left(DriveName, 1) & ":" ' Create the drive name, to be sure it's in the correct format. eg: 'C:'
End If
Set objFileSys = CreateObject("Scripting.FileSystemObject") ' Create the filesystem object
Set objDrive = objFileSys.GetDrive(CStr(strDrive))
If objFileSys.DriveExists(strDrive) Then ' Test if the drive exist
xIsDriveReady = objDrive.IsReady ' Test if it is ready to be used
Else
xIsDriveReady = False
End If
Exit Function

DriveError:
xIsDriveReady = False
End Function

Le problème est que je n'arive pas à l'exploiter, il ne produit rien quand je l'exécute et je ne sais pas quoi faire pour y remédier. Merci de m'aider...

A voir également:

5 réponses

Dworf Messages postés 627 Date d'inscription lundi 2 juillet 2001 Statut Membre Dernière intervention 21 novembre 2005 17
30 août 2001 à 11:24
c'est encore moaaaa
laisse tomber et utilise ça:

Option Explicit
Private Sub Form_Load()
Dim fso
Dim r, r1 As String
Set fso = CreateObject("Scripting.FileSystemObject")
r = InputBox("Entrez le nom du lecteur que vous voulez savoir s'il existe ou pas:::::")
If r = "" Then
Exit Sub
Else
If fso.DriveExists(r) Then
MsgBox "ca existe"
Else
MsgBox "perduuuuuu"
End If
End If
Unload Me
End Sub
1
Je te remercie beaucoup pour ta précieuse aide, ça ma appris une bonne chose. Mais dans mon cas, ce n'est pas sur ma machine que je veux savoir si tel ou tel lecteur existe mais sur une autre qui fait partie du réseau de mon entreprise. Comment dois-je faire? Où dois-je taper l'adresse IP lui correspondant?Merci.
0
Dworf Messages postés 627 Date d'inscription lundi 2 juillet 2001 Statut Membre Dernière intervention 21 novembre 2005 17
30 août 2001 à 11:02
bien sûr qu'il se passe rien puisqu'on ne lui demande rien

copies ca sous vb, au moins ca te fera quelque chose:

Option Explicit

Private Sub Form_Load()
Dim r
Dim drivename As String
drivename = "c:\"
r = xIsDriveReady(drivename)
Unload Me
End Sub
Public Function xIsDriveReady(ByVal drivename As String) As Boolean
Dim objFileSys As Object
Dim objDrive As Object
Dim strDrive As String

On Error GoTo DriveError

If Left(drivename, 1) = "\" Then
strDrive = drivename ' If it's a network path, then let it as it is.
Else
strDrive = Left(drivename, 1) & ":" ' Create the drive name, to be sure it's in the correct format. eg: 'C:'
End If
Set objFileSys = CreateObject("Scripting.FileSystemObject") ' Create the filesystem object
Set objDrive = objFileSys.GetDrive(CStr(strDrive))
If objFileSys.DriveExists(strDrive) Then ' Test if the drive exist
xIsDriveReady = objDrive.IsReady ' Test if it is ready to be used
MsgBox "yop"
Else
xIsDriveReady = False
MsgBox "nop"
End If
Exit Function

DriveError:
xIsDriveReady = False
End Function
0
Dworf Messages postés 627 Date d'inscription lundi 2 juillet 2001 Statut Membre Dernière intervention 21 novembre 2005 17
30 août 2001 à 12:15
c'est tout simple
imaginons que t'a une machine qui s'appelle4fromages ok?
quand il te demande le nom du lecteur ben tu entres
\\4fromages\c$ (ou d$ ou e$...)
0
C'est tout simple et je n'y avais pas pensé c'est vrai, merci de ton aide. J'ai une autre question : il faudrait que cette détection se fasse automatiquement lors de l'exécution de mon soft sans que j'ai besoin de taper 1 par 1 les lettres des lecteurs dans l'input box.Je n'ai pas besoin de savoir si la machine possède d'autres lecteurs que les disques durs (CD-rom ou périphériques de sauvegarde).Merci d'avance pour ta précieuse aide.
0
Dworf Messages postés 627 Date d'inscription lundi 2 juillet 2001 Statut Membre Dernière intervention 21 novembre 2005 17
30 août 2001 à 15:05
bon
je sais pas trop et j'ai pas le temps de chercher
alors on va faire ça façon bidouillique
tu reprends mon code et tu le fais tourner en boucle en testant une lettre différente à chaque fois (tu enlèves l'inputbox et tu rentres le chemin en dur) ok?
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Dworf Messages postés 627 Date d'inscription lundi 2 juillet 2001 Statut Membre Dernière intervention 21 novembre 2005 17
30 août 2001 à 16:54
salut
y'a ca aussi

Private Sub Form_Load()
Dim fs, d, dc, s, n
Set fs = CreateObject("Scripting.FileSystemObject")
Set dc = fs.Drives
For Each d In dc
s = s & d.DriveLetter & " - "
If d.DriveType = 3 Then
n = d.ShareName
Else
'n = d.VolumeName
End If
s = s & n & vbCrLf
Next
MsgBox s

End Sub

mais ca tourne qu'ne local, à toi de trouver comment le faire tourner pour une machine du réseau
0