Hallo zusammen,
habe hier einen VB 6 Code zum Erkennen von Laufwerken und möchte den gerne in einen VB.net Code umschreiben.
Der Quellcode sieht so aus:
<pre>Option Explicit
' zunächst die benötigten API-Deklarationen
Private Declare Function GetLogicalDriveStrings Lib "kernel32" Alias "GetLogicalDriveStringsA" _
(ByVal nBufferLength As Long, ByVal lpBuffer As String) As Long
Private Declare Function GetDriveType Lib "kernel32" Alias "GetDriveTypeA" (ByVal nDrive As String) As Long
Private Const DRIVE_REMOVABLE = 2
Private Const DRIVE_FIXED = 3
Private Const DRIVE_REMOTE = 4
Private Const DRIVE_CDROM = 5
Private Const DRIVE_RAMDISK = 6
' Alle Laufwerke eines bestimmten Typs ermitteln
' z.B. CD-ROM Laufwerke
Private Function GetAllDrives(Optional ByVal DriveType As _
Long = 0) As String
Dim I As Integer
Dim Result As Long
Dim Drives() As String
Dim Dummy As String
Dim sDrives As String
Dummy = Space(255)
Result = GetLogicalDriveStrings(Len(Dummy), Dummy)
Drives = Split(Dummy, Chr$(0))
For I = 0 To UBound(Drives) - 1
If GetDriveType(Drives(I)) = DriveType Or _
DriveType = 0 Then
sDrives = sDrives & Left$(Drives(I), 1)
End If
Next I
GetAllDrives = sDrives
End Function
Private Sub Form_Load()
' Ermitteln aller CD-Laufwerke
Me.Print GetAllDrives(DRIVE_CDROM)
End Sub</pre>
Bis hier habe ich es jetzt schon:
<pre> Private Declare Function GetLogicalDriveStrings Lib "kernel32" Alias "GetLogicalDriveStringsA" _
(ByVal nBufferLength As Integer, ByVal lpBuffer As String) As Integer
Private Declare Function GetDriveType Lib "kernel32" Alias "GetDriveTypeA" (ByVal nDrive As String) As Integer
' zunächst die benötigten API-Deklarationen
Private Const DRIVE_REMOVABLE As Short = 2
Private Const DRIVE_FIXED As Short = 3
Private Const DRIVE_REMOTE As Short = 4
Private Const DRIVE_CDROM As Short = 5
Private Const DRIVE_RAMDISK As Short = 6
' Alle Laufwerke eines bestimmten Typs ermitteln
' z.B. CD-ROM Laufwerke
Private Function GetAllDrives(Optional ByVal DriveType As Integer = 0) As String
Dim I As Short
Dim Result As Integer
Dim Drives() As String
Dim Dummy As String
Dim sDrives As String
Dummy = Space(255)
Result = GetLogicalDriveStrings(Len(Dummy), Dummy)
Drives = Split(Dummy, Chr(0))
For I = 0 To UBound(Drives) - 1</pre>
doch hier habe ich Probleme mit "Left":
<pre>If GetDriveType(Drives(I)) = DriveType Or DriveType = 0 Then
sDrives = sDrives & Left(Drives(I), 1)
End If</pre>
Wie muss ich hier "Left" handhaben, damit er mir den "GetDriveType-Befehl" richtig macht?
Danke für eure Hilfe.
Gruss pastl
habe hier einen VB 6 Code zum Erkennen von Laufwerken und möchte den gerne in einen VB.net Code umschreiben.
Der Quellcode sieht so aus:
<pre>Option Explicit
' zunächst die benötigten API-Deklarationen
Private Declare Function GetLogicalDriveStrings Lib "kernel32" Alias "GetLogicalDriveStringsA" _
(ByVal nBufferLength As Long, ByVal lpBuffer As String) As Long
Private Declare Function GetDriveType Lib "kernel32" Alias "GetDriveTypeA" (ByVal nDrive As String) As Long
Private Const DRIVE_REMOVABLE = 2
Private Const DRIVE_FIXED = 3
Private Const DRIVE_REMOTE = 4
Private Const DRIVE_CDROM = 5
Private Const DRIVE_RAMDISK = 6
' Alle Laufwerke eines bestimmten Typs ermitteln
' z.B. CD-ROM Laufwerke
Private Function GetAllDrives(Optional ByVal DriveType As _
Long = 0) As String
Dim I As Integer
Dim Result As Long
Dim Drives() As String
Dim Dummy As String
Dim sDrives As String
Dummy = Space(255)
Result = GetLogicalDriveStrings(Len(Dummy), Dummy)
Drives = Split(Dummy, Chr$(0))
For I = 0 To UBound(Drives) - 1
If GetDriveType(Drives(I)) = DriveType Or _
DriveType = 0 Then
sDrives = sDrives & Left$(Drives(I), 1)
End If
Next I
GetAllDrives = sDrives
End Function
Private Sub Form_Load()
' Ermitteln aller CD-Laufwerke
Me.Print GetAllDrives(DRIVE_CDROM)
End Sub</pre>
Bis hier habe ich es jetzt schon:
<pre> Private Declare Function GetLogicalDriveStrings Lib "kernel32" Alias "GetLogicalDriveStringsA" _
(ByVal nBufferLength As Integer, ByVal lpBuffer As String) As Integer
Private Declare Function GetDriveType Lib "kernel32" Alias "GetDriveTypeA" (ByVal nDrive As String) As Integer
' zunächst die benötigten API-Deklarationen
Private Const DRIVE_REMOVABLE As Short = 2
Private Const DRIVE_FIXED As Short = 3
Private Const DRIVE_REMOTE As Short = 4
Private Const DRIVE_CDROM As Short = 5
Private Const DRIVE_RAMDISK As Short = 6
' Alle Laufwerke eines bestimmten Typs ermitteln
' z.B. CD-ROM Laufwerke
Private Function GetAllDrives(Optional ByVal DriveType As Integer = 0) As String
Dim I As Short
Dim Result As Integer
Dim Drives() As String
Dim Dummy As String
Dim sDrives As String
Dummy = Space(255)
Result = GetLogicalDriveStrings(Len(Dummy), Dummy)
Drives = Split(Dummy, Chr(0))
For I = 0 To UBound(Drives) - 1</pre>
doch hier habe ich Probleme mit "Left":
<pre>If GetDriveType(Drives(I)) = DriveType Or DriveType = 0 Then
sDrives = sDrives & Left(Drives(I), 1)
End If</pre>
Wie muss ich hier "Left" handhaben, damit er mir den "GetDriveType-Befehl" richtig macht?
Danke für eure Hilfe.
Gruss pastl
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Marcus Gräfe“ ()