Webdav als Laufwerk einbinden

  • VB.NET

Es gibt 10 Antworten in diesem Thema. Der letzte Beitrag () ist von sdcleitung.

    Webdav als Laufwerk einbinden

    Hey,
    ich würde gerne eine Verbindung zu einem Webdav Laufwerk aufbauen. Also z.B. ein Programm 2 Buttons:
    Verbinden und Trennen

    Wenn man auf Verbinden klickt soll das Laufwerk eingefügt werden und im Arbeitsplatz zu sehen sein.

    Ich habe jetzt schon überall gesucht aber nichts gefunden was funktioniert hätte.

    Vielen Dank ;)
    Hey,
    ich sehe da irgendwie nur 2 die nichts mit dem Thema Laufwerk einbinden zu tun haben?



    der Link führt zu einem Tutorial in dem erklärt wird wie man Kalender Einträge abfrägt, ich möchte aber WebDav als Laufwerk einbinden (also so wie Arbeitsplatz rechtsklick -> Netzwerkadresse hinzufügen (unter Win 7))

    Und ich weiß eben nicht wie ich das hinzufügen kann. (Also normal schon aber eben nicht WebDav)

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „sdcleitung“ ()

    Hey,
    danke für den Link aber ich glaube du verstehst nicht was ich meine.

    Weißt du was WebDav ist?
    Ich muss eine Verbindung zu einem "WebDav-Server" aufbauen so wie FTP wenn ich das manuell einbinde (Windows7>Computer (Arbeitsplatz) muss ich die Adresse angeben: z.B.: webdav.webdavservice.de Und dann Benutzer und PW. Ein Programm das das z.B. kann ist der 1&1 HomeNet Client
    ich habe dir alle nützliche links gepostet.
    Wie man verbindung aufbaut siehe mein ersten link, wenn du als laufwerk in Arbeitsplaz/Win Explorerer haben willst, habe auch geschrieben, probiere mit einem virt Laufwerk. Nun du muß die ganze quelltexte anpassen/umschreiben an eigenen wunsch/bedarf. Vorschläge hast bekommen, damit ist der thread für mich geschlossen !
    By ! ;)

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „SystemUnknow“ ()

    Hey,
    ja jetzt hast du den oberen Link wieder geändert und diesesmal verstehe ich auch was du damit meintest ...

    Also mein Code der allerdings noch nicht funktioniert da ich nicht weiß wie ich die Freigabe vom Server Abfrufe:

    Spoiler anzeigen

    VB.NET-Quellcode

    1. Imports System.Net
    2. Imports System.Net.WebRequestMethods
    3. Public Class Form1
    4. Const RESOURCETYPE_DISK = &H1
    5. Public Structure NETRESOURCE
    6. Public dwScope As Integer
    7. Public dwType As Integer
    8. Public dwDisplayType As Integer
    9. Public dwUsage As Integer
    10. Public lpLocalName As String
    11. Public lpRemoteName As String
    12. Public lpComment As String
    13. Public lpProvider As String
    14. End Structure
    15. Private Declare Function WNetAddConnection2 Lib "mpr.dll" _
    16. Alias "WNetAddConnection2A" ( _
    17. ByRef lpNetResource As NETRESOURCE, _
    18. ByVal dwFlags As Integer) As Integer
    19. Private Declare Function WNetCancelConnection2 Lib "mpr.dll" _
    20. Alias "WNetCancelConnection2A" ( _
    21. ByVal lpName As String, _
    22. ByVal dwFlags As Integer, _
    23. ByVal fForce As Integer) As Integer
    24. Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    25. Dim url As String = "https://sd2dav.1und1.de"
    26. Dim port As String = "80"
    27. 'If the port was provided, then insert it into the url.
    28. If port <> "" Then
    29. 'Insert the port into the Url
    30. Dim u As New Uri(url)
    31. 'Get the host (example: www.example.com)
    32. Dim host As String = u.Host
    33. 'Replace the host with the host:port
    34. url = url.Replace(host, host & ":" & port)
    35. End If
    36. 'Create the request
    37. Dim request As HttpWebRequest = _
    38. DirectCast(System.Net.HttpWebRequest.Create(url), HttpWebRequest)
    39. 'Set the User Name and Password
    40. request.Credentials = New NetworkCredential("USER", "PW")
    41. request.Method = WebRequestMethods.Http.Get
    42. 'This is required for our WebDAV server
    43. request.SendChunked = True
    44. request.Headers.Add("Translate: f")
    45. Dim response As HttpWebResponse = Nothing
    46. Try
    47. 'Get the response
    48. response = DirectCast(request.GetResponse(), HttpWebResponse)
    49. Catch ex As Exception
    50. MessageBox.Show("An error occurred while attempting to retrieve data from the remote server. " & _
    51. "The following error occurred while attempting to retrieve the data:" & vbCrLf & vbCrLf & _
    52. ex.Message)
    53. End Try
    54. End Sub
    55. Public Function MapDrive(ByVal buchstabe As String, _
    56. ByVal freigabename As String) As Boolean
    57. Dim nr As NETRESOURCE ' Netzlaufwerk-Objekt (siehe Struktur)
    58. Dim cntresult As Integer ' Resultat des Verbindens
    59. ' nr ist das neue Netzlaufwerk der NETRESOURCE Struktur:
    60. nr = New NETRESOURCE
    61. ' Überprüfen, ob der Laufwerkbuchstabe schon vorhanden ist,
    62. ' wenn ja dann Funktionen beenden.
    63. If Not buchstabe.EndsWith(":") Then buchstabe = buchstabe & ":"
    64. Dim sDrives As String = Join(System.IO.Directory.GetLogicalDrives(), "")
    65. If sDrives.Contains(buchstabe) Then Return False
    66. ' Dem Objekt nr übergeben wir jetzt die wichtigen Eigenschaften:
    67. With nr
    68. ' Freigabename setzt sich zusammen aus dem
    69. ' Computernamen und dem Freigabename
    70. ' Bsp: \\meincomputer\freigabe1
    71. .lpRemoteName = freigabename
    72. ' Der gewünschte Laufwerksbuchstabe
    73. .lpLocalName = buchstabe
    74. End With
    75. ' Typdefinition des Netzlaufwerk (eben Laufwerk)
    76. nr.dwType = RESOURCETYPE_DISK
    77. ' Die eigentliche Funktion, das Verbinden.
    78. ' Das Ergebnis wird in cntresult abgespeichert.
    79. ' Bei Erfolg kommt als Return 0
    80. cntresult = WNetAddConnection2(nr, 0)
    81. If cntresult = 0 Then
    82. ' Wenn null, war das Verbinden erfolgreich,
    83. Return True
    84. Else
    85. ' anderfalls nicht.
    86. Return False
    87. End If
    88. End Function
    89. Private Sub Command1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Command1.Click
    90. Dim sDrive As String = "O:"
    91. If MapDrive(sDrive, "WAS MUSS HIER HIN?") = True Then
    92. MsgBox("Laufwerk verbunden (" & sDrive & ")")
    93. End If
    94. End Sub
    95. End Class


    Also bei WAS MUSS HIER HIN? sollte eben die Freigabe stehen die vom Server abegrufen werden muss allerdings weiß ich nicht wie ?

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „sdcleitung“ ()