Die Community zu .NET und Classic VB.
Menü

Tipp-Upload: VB.NET 0329: Netzlaufwerk verbinden und trennen mit VB.net

 von 

Hinweis zum Tippvorschlag  

Dieser Vorschlag wurde noch nicht auf Sinn und Inhalt überprüft und die Zip-Datei wurde noch nicht auf schädlichen Inhalt hin untersucht.
Bitte haben Sie ein wenig Geduld, bis die Freigabe erfolgt.

Über den Tipp  

Dieser Tippvorschlag ist noch unbewertet.

Der Vorschlag ist in den folgenden Kategorien zu finden:

  • Internet und Netzwerke

Dem Tippvorschlag wurden folgende Schlüsselwörter zugeordnet:
Netzlaufwerk verbinden und trennen, VB.net

Der Vorschlag wurde erstellt am: 07.01.2009 12:18.
Die letzte Aktualisierung erfolgte am 07.01.2009 12:23.

Zurück zur Übersicht

Beschreibung  

Hier wird ein Netzlaufwerk verbunden und getrennt mit VB.net
Der User kann ein freies Laufwerk auswählen und dann sich mit dem Laufwerk verbinden. Es hat fast die gleiche Funtkion wie Tipp: VB 5/6-Tipp 0010: Netzlaufwerk verbinden und trennen, jedoch klappt das ganze nun mit VB.net.

Vielspaß beim verwenden.

Schwierigkeitsgrad

Schwierigkeitsgrad 2

Verwendete API-Aufrufe:

WNetAddConnection2 (WNetAddConnection2A), WNetCancelConnection2 (WNetCancelConnection2A)

Download:

Download des Beispielprojektes [11,43 KB]

' Dieser Source 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!
'
' Beachten Sie, das vom Designer generierter Code hier ausgeblendet wird.
' In den Zip-Dateien ist er jedoch zu finden.

' --- Anfang Projektdatei Netzlaufwerk verbinden und trennen VB.net.vbproj ---
' ------------------ Anfang Datei Form1.vb  ------------------
Option Explicit On

Imports System.IO   ' Wird für das Suchen von freien Laufwerks-Buchstaben benötigt

Public Class frmNetzlaufwerk

    Dim strUserName As String       ' UserName für Anmelden beim Netzlaufwerk
    Dim strUserPassword As String   ' Password für die Anmeldung
    Dim strDrive As String          ' Laufwerksbuchstabe

    ' Dieser Source 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 !

    ' Deklaration: Globale Form API-Konstanten
    ' Private Const RESOURCETYPE_DISK As Int32 = &H1
    Const RESOURCETYPE_DISK = &H1

    ' Deklaration: Globale Form API-Typen
    Public Structure NETRESOURCE
        Public dwScope As Integer
        Public dwType As Integer
        Public dwDisplayType As Integer
        Public dwUsage As Integer
        Public lpLocalName As String
        Public lpRemoteName As String
        Public lpComment As String
        Public lpProvider As String

    End Structure

    ' Deklaration: Globale Form API-Funktionen
    Private Declare Function WNetAddConnection2 Lib "mpr.dll" _
                             Alias "WNetAddConnection2A" ( _
                             ByRef lpNetResource As NETRESOURCE, _
                             ByVal lpPassword As String, _
                             ByVal lpUserName As String, _
                             ByVal dwFlags As Integer) As Integer

    Private Declare Function WNetCancelConnection2 Lib "mpr.dll" _
                             Alias "WNetCancelConnection2A" ( _
                             ByVal lpName As String, _
                             ByVal dwFlags As Integer, _
                             ByVal fForce As Integer) As Integer

    Dim udtNetzResource As NETRESOURCE

    Private Sub frmNetzlaufwerk_Load(ByVal sender As System.Object, ByVal e As _
        System.EventArgs) Handles MyBase.Load

        lblConnect.Text = "Es ist keine Verbindung hergestellt."

        ' Freien Laufwerks-Buchstaben ermitteln
        Dim i As Integer

        Dim sDrives As String = Join(Directory.GetLogicalDrives(), "")
        Dim sNextDrive As String = ""

        For i = 68 To 90

            If Not sDrives.Contains(Chr(i) & ":") Then
                sNextDrive = Chr(i) & ":"
                ComboDrive.Items.Add(sNextDrive)
            End If

        Next

        ' R1 = Rechnername, C_SYSTEM = Name des zuzuweisenden Laufwerks
        udtNetzResource.lpRemoteName = "\R1\\I_CSS-WORK"

        ' Username & Passwort (anhängig vom Freigabestatus des Laufwerks). Inhalt ist
        ' bestenfalls egal
        strUserName = "Goetz"
        strUserPassword = "holla"

        udtNetzResource.dwType = RESOURCETYPE_DISK
        lblDriveCaption.Text = ""

    End Sub

    Private Sub frmConnect_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) _
        Handles frmConnect.Click

        ' Abfrage ob ein Laufwerksbuchstabe ausgewählt wurde
        If ComboDrive.Text = "" Then

            MsgBox("Es wurde kein freier Laufwerks-Buchstabe ausgewählt.")

        Else

            ' gewählter Laufwerksbuchstabe sichern für die Trennung
            strDrive = ComboDrive.Text

            udtNetzResource.lpLocalName = ComboDrive.Text

            Dim lngResult As Integer

            ' Hier wird verbunden
            ' dwFlag muss 1 sein
            lngResult = WNetAddConnection2(udtNetzResource, strUserPassword, strUserName, 1)

            If lngResult = 0 Then
                lblConnect.Text = "Verbunden."

            Else

                lblConnect.Text = "Verbindung nicht möglich."
            End If

        End If

    End Sub

    Private Sub frmDisconnect_Click(ByVal sender As System.Object, ByVal e As _
        System.EventArgs) Handles frmDisconnect.Click

        ' gewählter Laufwerksbuchstabe sichern für die Trennung
        strDrive = ComboDrive.Text

        udtNetzResource.lpLocalName = ComboDrive.Text

        Dim lngResult As Integer

        lngResult = WNetCancelConnection2(strDrive, 0, True)

        If lngResult = 0 Then
            lblConnect.Text = "Getrennt."

        Else

            lblConnect.Text = "Trennung nicht möglich."
        End If

    End Sub

End Class

' ------------------- Ende Datei Form1.vb  -------------------
' --- Ende Projektdatei Netzlaufwerk verbinden und trennen VB.net.vbproj ---

	

Diskussion  

Diese Funktion ermöglicht es, Fragen, die die Veröffentlichung des Tipps betreffen, zu klären, oder Anregungen und Verbesserungsvorschläge einzubringen. Nach der Veröffentlichung des Tipps werden diese Beiträge nicht weiter verlinkt. Allgemeine Fragen zum Inhalt sollten daher hier nicht geklärt werden.
Folgende Diskussionen existieren bereits

Um eine Diskussion eröffnen zu können, müssen sie angemeldet sein.