vb6 code in vb.net umschreiben

  • VB.NET

Es gibt 2 Antworten in diesem Thema. Der letzte Beitrag () ist von pastl.

    vb6 code in vb.net umschreiben

    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

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Marcus Gräfe“ ()

    Den Left-Befehl kannst Du aufrufen, in dem Du genau sagst in welcher Klasse er sich befindet. Statt <pre>left(text, zeichen)</pre> müßtest Du dann einfach <pre>microsoft.visualbasic.left(text, zeichen)</pre> aufrufen.
    Die Funktion ist die gleiche.

    Gruß Dirk