Supportnet Computer
Planet of Tech

Supportnet / Forum / Skripte(PHP,ASP,Perl...)

GetVolumeInfomation





Frage

Ich möchte den folgenden Code in einem VB-Script einsetzen, kann mir jemand dabei helfen: Private Declare Function GetVolumeInformation Lib "kernel32" Alias "GetVolumeInformationA" (ByVal lpRootPathName As String, _ ByVal lpVolumeNameBuffer As String, ByVal nVolumeNameSize As Long, lpVolumeSerialNumber As Long, lpMaximumComponentLength As Long, _ lpFileSystemFlags As Long, ByVal lpFileSystemNameBuffer As String, ByVal nFileSystemNameSize As Long) As Long Sub test() Dim Serial As Long, VName As String, FSName As String Dim fs, d, dc, n Set fs = CreateObject("Scripting.FileSystemObject") Set dc = fs.Drives VName = String$(11, Chr$(0)) FSName = String$(11, Chr$(0)) For Each d In dc If d.DriveType = 1 Then n = d.DriveLetter GetVolumeInformation "E:\", VName, 11, Serial, 0, 0, FSName, 11 VName = Left$(VName, InStr(1, VName, Chr$(0)) - 1) If VName = "MEINARD" Then MsgBox n & ": ist eine Wechseldatenträger mit dem DatenträgerName: " & VName End If End If Next End Sub Vielen Dank im Voraus. Martin Meinard

Antwort 1 von robbie17

eine methode die alle existierenden laufwerke ausgibt
kenne ich leider nicht

aber vielleicht hilft dir dieses beispiel weiter
es gibt den status der ersten l(=10) laufwerke aus:


l=10
set fso=createobject("scripting.filesystemobject")
msg=""
for n=1 to l
 if fso.driveexists(chr(64+n)) then
  set d=fso.getdrive(chr(64+n))
  on error resume next
  name="'"&d.volumename&"'"
  fehler=err.number
  on error goto 0
  if fehler and fehler=71 then
   msg=msg+chr(64+n)+": ++no volume++"&chr(10)
  else
   if name="''" then name="++unlabeled++"
   msg=msg+chr(64+n)+": "&name&" frei: "&d.freespace&chr(10)
  end if
 else
  msg=msg+chr(64+n)+": existiert nicht"&chr(10)
 end if
next
msgbox msg


die methode volumename ergibt den laufzeitfehler 71
-wenn kein datenträger eingelegt ist-
das muß abgefangen werden

installier dir mal die dokumentation zum scriptinghost
da steht alles drin

ps:
das mit den variablentyp-deklarationen
kannst du bei vbskript knicken
vbs kennt nur einen universellen variablentyp

Antwort 2 von robbie17

vergiß mein obiges posting
das hier dürfte das enthalten was du suchst:


a=array("Unbekanntes Laufwerk","Wechselmedium","Festplatte","Netzlaufwerk","CD-ROM","RAM-Laufwerk")
set fso=createobject("scripting.filesystemobject")
set d=fso.drives
msg=""
for each dd in d
 l=dd.driveletter
 t=dd.drivetype
 if not dd.isready then
  n="++no volume++"
 else
  n="'"&dd.volumename&"'"
  if n="''" then n="++unlabeled++"
 end if
 msg=msg&l&" ("&a(t)&"): "&n&chr(10)
next
msgbox msg


irgendwie ist die dokumentation
die ich dir gerade empfohlen habe
nicht besonders übersichtlich :)

Ich möchte kostenlos eine Frage an die Mitglieder stellen:


Suche in allen vorhandenen Beiträgen: