125 lines
4.1 KiB
VB.net

Imports System.IO
Public Class Form1
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 Form1_Load(sender As Object, e As EventArgs) Handles Me.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 = "\\SDD-VMP03-VM09\DataFiles$\Digital Data\EnvelopeGenerator\EnvelopeGeneratorExport"
' Username & Passwort (anhängig vom Freigabestatus des Laufwerks). Inhalt ist
' bestenfalls egal
strUserName = "dd-san01\Administrator"
strUserPassword = "##25!45!3_works"
udtNetzResource.dwType = RESOURCETYPE_DISK
lblDriveCaption.Text = ""
End Sub
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.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 Button2_Click(sender As Object, e As EventArgs) Handles Button2.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