VB 5/6-Tipp 0153: Datenträgerbezeichnung lesen und schreiben
von ActiveVB
Beschreibung
Datenträgerbezeichnungen lassen sich sowohl lesen als auch schreiben. Hier wird gezeigt wie es geht.
Schwierigkeitsgrad: | Verwendete API-Aufrufe: GetVolumeInformationA (GetVolumeInformation), SetVolumeLabelA (SetVolumeLabel) | Download: |
'Dieser Quellcode stammt von http://www.activevb.de 'und kann frei verwendet werden. Für eventuelle Schäden 'wird nicht gehaftet. 'Um Fehler oder Fragen zu klären, nutzen Sie bitte unser Forum. 'Ansonsten viel Spaß und Erfolg mit diesem Source! '------------- Anfang Projektdatei Project1.vbp ------------- '--------- Anfang Formular "Form1" alias Form1.frm --------- ' Steuerelement: Textfeld "Text2" ' Steuerelement: Textfeld "Text1" ' Steuerelement: Festplattenauswahlliste "Drive1" ' Steuerelement: Schaltfläche "Command1" ' Steuerelement: Beschriftungsfeld "Label2" ' Steuerelement: Beschriftungsfeld "Label1" Option Explicit Private Declare Function SetVolumeLabel Lib "kernel32" _ Alias "SetVolumeLabelA" (ByVal lpRootPathName _ As String, ByVal lpVolumeName As String) As Long 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 Private Sub Form_Load() Text1.Text = GetDriveName("C:\") Text2.Text = "" End Sub Private Sub Command1_Click() Dim Drive$ Drive = Left$(Drive1.Drive, 2) & "\" Call SetDriveName(Drive, Text2.Text) Drive1.Refresh Text1.Text = GetDriveName(Drive) Text2.Text = "" End Sub Private Sub Drive1_Change() Dim Drive$ Drive = Left$(Drive1.Drive, 2) & "\" Text1.Text = GetDriveName(Drive) Text2.Text = "" End Sub Private Function GetDriveName(ByVal Drive$) As String Dim Result&, SerN&, PathL&, Flags& Dim VolN As String * 256 Dim FileS As String * 256 Result = GetVolumeInformation(Drive, VolN, 256, SerN, _ PathL, Flags, FileS, 256) GetDriveName = Left$(VolN, InStr(VolN, Chr$(0)) - 1) End Function Private Function SetDriveName(ByVal Drive$, ByVal Name$) Name = Left$(Text2.Text, 11) & Chr$(0) Call SetVolumeLabel(Drive, Name) End Function '---------- Ende Formular "Form1" alias Form1.frm ---------- '-------------- Ende Projektdatei Project1.vbp --------------
Tipp-Kompatibilität:
Windows/VB-Version | Win32s | Win95 | Win98 | WinME | WinNT4 | Win2000 | WinXP |
VB4 | |||||||
VB5 | |||||||
VB6 |
Ihre Meinung
Falls Sie Fragen zu diesem Artikel haben oder Ihre Erfahrung mit anderen Nutzern austauschen möchten, dann teilen Sie uns diese bitte in einem der unten vorhandenen Themen oder über einen neuen Beitrag mit. Hierzu können sie einfach einen Beitrag in einem zum Thema passenden Forum anlegen, welcher automatisch mit dieser Seite verknüpft wird.
Archivierte Nutzerkommentare
Klicken Sie diesen Text an, wenn Sie die 4 archivierten Kommentare ansehen möchten.
Diese stammen noch von der Zeit, als es noch keine direkte Forenunterstützung für Fragen und Kommentare zu einzelnen Artikeln gab.
Aus Gründen der Vollständigkeit können Sie sich die ausgeblendeten Kommentare zu diesem Artikel aber gerne weiterhin ansehen.
Kommentar von Martin am 05.05.2004 um 11:41
Ich habe dies und auch ein ähnliches Beispielprojekt herruntergeladen.
Das Umbenennen funktioniert bei beiden nur für das Laufwerk C:\
weder d:\(lokal) noch h bis z (netzlaufwerke) können umbenannt werden.
Wo liegt da das Problem ??
Kommentar von Simon Willis am 05.08.2003 um 22:14
was ist eine datenträgerbezeichnung! stichwort: fdisk partitionen löschen
Kommentar von türschmann am 27.07.2003 um 18:14
nachdem ich den Tipp zum Auslesen der Seriennummer ohne Probleme in eine ACCESS-DB einbinden konnte, gelingt mir das
mit dem Tipp für das Auslesen der Datenträgerbezeichnung nicht. Beim Betätigen des Command1-Button kommt folgende Fehlermeldung:
'Methode oder Datenobjekt nicht gefunden'.
Markiert ist die Zeile:
...
Drive = Left$(Drive1.Drive, 2) & "\"
...
In diesem Zusammenhang ist mir auch nicht klar, was es mit dem Control DriveListBox: Drive1 auf sich hat. Dass Drive1 der Name des Controls ist, liegt ja nahe, was eine Listbox ist ebenfalls, aber eine DriveListBox? Ich habe in meiner Ahnungslosigkeit einfach eine Listbox(Name:Drive1)platziert.
Ich arbeite mit Windows ME, Office 2000, VBA
Danke erst einmal fürs Lesen!
Kommentar von Pate am 17.07.2002 um 22:22
Unter win 2000 geht der Tipp überhaupt nicht, es kommt aber auch keine Fehlermeldung!!