Laufwerksbuchstaben auslesen wenn Laufwerk bestimmte Bezeichnung hat

  • VB.NET

Es gibt 18 Antworten in diesem Thema. Der letzte Beitrag () ist von Nils89.

    Laufwerksbuchstaben auslesen wenn Laufwerk bestimmte Bezeichnung hat

    Hallo zusammen,

    ich habe folgendes Problem:

    ich möchte gern des Laufwerksbuchstaben ausgegeben haben, wenn das Laufwerk einen bestimmten Namen hat (z.B: "Public")

    Kann mir hier jemand weiterhelfen?

    Gruß
    Nils
    So in etwar?

    VB.NET-Quellcode

    1. Dim allDrives() As System.IO.DriveInfo = System.IO.DriveInfo.GetDrives()
    2. For Each d In allDrives
    3. If d.VolumeLabel.Contains("public") Then
    4. MessageBox.Show(d.Name)
    5. End If
    6. Next
    Es war einmal ein kleiner Bär... der wollte eine Geschichte hörn... Da erzählte ihm seine Mutti:
    Es war einmal ein kleiner Bär... der wollte eine Geschichte hörn... Da erzählte ihm seine Mutti:
    Es war einmal ein kleiner Bär... der wollte eine Geschichte hörn... Da erzählte ihm seine Mutti:
    ... Nun solltest es selber wissen. :'D
    Hallo,

    vielen dank für die schnelle Antwort :)

    ich kann es gerade leider nicht testen, da ich erst wieder heute abend VB 2013 zur verfügung habe.
    Habe aktuell nur vba(excel) zur Verfügung und hier wird die erste Zeile immer rot hinterlegt.

    Welchen verweis muss ich in excel aktivieren, damit es funktioniert?

    Gruß
    Nils
    Bei VBA darfst mich nicht fragen. Damit habe ich so gut wie nix am Hut.
    Zudem weiß ich nicht was er in Excel ankringelt :P Der sollte doch irgendwo sagen was ihm net passt
    Es war einmal ein kleiner Bär... der wollte eine Geschichte hörn... Da erzählte ihm seine Mutti:
    Es war einmal ein kleiner Bär... der wollte eine Geschichte hörn... Da erzählte ihm seine Mutti:
    Es war einmal ein kleiner Bär... der wollte eine Geschichte hörn... Da erzählte ihm seine Mutti:
    ... Nun solltest es selber wissen. :'D
    Du meinst also nicht den Laufwerksnamen, sondern du meinst den Ordnernamen den du als Netzwerkfestplatte angeschlossen hast. Das ist ja nen kleiner Unterschied :P
    GetDrives sollte dir die Netzlaufwerke mit auswerfen, aber da wirst du wahrscheinlich kein ValumeLabel haben...
    Es war einmal ein kleiner Bär... der wollte eine Geschichte hörn... Da erzählte ihm seine Mutti:
    Es war einmal ein kleiner Bär... der wollte eine Geschichte hörn... Da erzählte ihm seine Mutti:
    Es war einmal ein kleiner Bär... der wollte eine Geschichte hörn... Da erzählte ihm seine Mutti:
    ... Nun solltest es selber wissen. :'D
    Stimmt sehe ich gerade auch.

    Im Arbeitsplatz wird mit das Netzwerklaufwerk z.B. mit Public(Y:) angezeigt, allerdings unter Eingenschaften heißt die Platte "DATAPART2"
    Gibt es eine Möglichkeit das Public auszulesen? und somit an das Y: zu kommen?
    Dafür musst du dich der mpr.dll bedienen. Die kann den UNC Pfad eines Netzlaufwerks ermitteln.

    Als kleines Beispiel:

    VB.NET-Quellcode

    1. Declare Auto Function WNetGetConnection Lib "mpr.dll" (ByVal localName As _
    2. String, ByVal remoteName As System.Text.StringBuilder, ByRef length As _
    3. Integer) As Integer
    4. Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
    5. Dim allDrives() As System.IO.DriveInfo = System.IO.DriveInfo.GetDrives()
    6. Dim length As Integer = 255
    7. Dim UNC As New System.Text.StringBuilder(length)
    8. For Each d In allDrives
    9. WNetGetConnection(Strings.Left(d.Name, 2), UNC, length)
    10. If UNC.ToString.Split(""c)(UNC.ToString.Split(""c).Length - 1).Contains("public") Then
    11. MessageBox.Show(UNC.ToString.Split(""c)(UNC.ToString.Split(""c).Length - 1))
    12. End If
    13. Next
    14. End Sub



    Ehm... Der Spaßvogel hier löscht meinen Backslash oO
    Stell dir zwischen den ""c nen Backslash vor XD
    Es war einmal ein kleiner Bär... der wollte eine Geschichte hörn... Da erzählte ihm seine Mutti:
    Es war einmal ein kleiner Bär... der wollte eine Geschichte hörn... Da erzählte ihm seine Mutti:
    Es war einmal ein kleiner Bär... der wollte eine Geschichte hörn... Da erzählte ihm seine Mutti:
    ... Nun solltest es selber wissen. :'D
    Nene :D
    Der soll zwischen die ""

    Wie schaut das denne bei dir aus... Kann mir das mit dem "Public" noch nicht so recht vorstellen.
    In der Variabel UNC steht der komplette UNC-Pfad drinne. Mit der Split Funktion hol ich mir nur den letzten Ordnernamen raus.
    Es war einmal ein kleiner Bär... der wollte eine Geschichte hörn... Da erzählte ihm seine Mutti:
    Es war einmal ein kleiner Bär... der wollte eine Geschichte hörn... Da erzählte ihm seine Mutti:
    Es war einmal ein kleiner Bär... der wollte eine Geschichte hörn... Da erzählte ihm seine Mutti:
    ... Nun solltest es selber wissen. :'D
    Hier einmal ein Bild:



    Das Netzwerklaufwerk "Public(Y: )" von diesem brauche ich den UNC Pfad ("\\test\test.de.de\")
    Jetzt soll das Programm alle Netzwerklaufwerke durchen gehen und sich von dem mit der Bezeichnung "Public" den UNC pfad speichern.
    Der Buchstabe ist leider nicht immer der selbe.
    Bilder
    • Unbenannt.jpg

      40,75 kB, 526×247, 177 mal angesehen

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

    Nils89 schrieb:

    Hier einmal ein Bild:
    What?
    Verwende bitte die Forumsfunktionalität Dateianhänge.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Ui... Du hast also die Netzlaufwerke umbenannt...
    Soweit ich weiß speichert sich Windows den Spaß in der Registrierung ab... Ganz böse dran zu kommen XD
    Es war einmal ein kleiner Bär... der wollte eine Geschichte hörn... Da erzählte ihm seine Mutti:
    Es war einmal ein kleiner Bär... der wollte eine Geschichte hörn... Da erzählte ihm seine Mutti:
    Es war einmal ein kleiner Bär... der wollte eine Geschichte hörn... Da erzählte ihm seine Mutti:
    ... Nun solltest es selber wissen. :'D
    Na du kannst ja mit den Informationen die du hast, für jedes Laufwerk den UNC-Pfad ermitteln und dann Prüfen ob in dem UNC-Pfad ein "Public" vorkommt. Wenn dir das reicht.
    Es war einmal ein kleiner Bär... der wollte eine Geschichte hörn... Da erzählte ihm seine Mutti:
    Es war einmal ein kleiner Bär... der wollte eine Geschichte hörn... Da erzählte ihm seine Mutti:
    Es war einmal ein kleiner Bär... der wollte eine Geschichte hörn... Da erzählte ihm seine Mutti:
    ... Nun solltest es selber wissen. :'D
    Ja das reicht :)

    Aber eine kleine Sache wäre da noch hoffe kannst mir da auch helfen :)

    Es kann vorkommen, dass es 2 UNC-Pfads gibt, in denen Public vorkommt, jetzt soll zusätzlich auch noch die IP geprüft werden und zwar direkt doppelt:

    Bei start der Funktion soll die Ip (interne) Abgefragt werden ist diese "10.216.42.*" oder "10.216.5.*" dann soll später wenn der UNC Pfad ermittelt wird geguckt werden ob Public vorkommt und "DUIE" wenn die IP eine andere ist soll nach Public und nach "HAME" geprüft werden.

    Nils89 schrieb:

    von diesem brauche ich den UNC Pfad ("\\test\test.de.de\")
    Warum machst Du das nicht im Explorer?
    Wie oft willst Du dieses Programm starten?
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Gute Fragen^^

    Um dir aber paar Lösungsansätze zu geben... Um zu schauen ob etwas in einem String enthalten ist... gibt es Variablenname.Contains("blabla") bzw Variablenname.ToString.Contains("blabla")
    Je nachdem ob es ein String ist oder erst zu einem gemacht werden muss.

    Wie man seine IP Adresse herausfindet... Dazu gibt's viele viele Codebeispiele in Google. ^^
    Es war einmal ein kleiner Bär... der wollte eine Geschichte hörn... Da erzählte ihm seine Mutti:
    Es war einmal ein kleiner Bär... der wollte eine Geschichte hörn... Da erzählte ihm seine Mutti:
    Es war einmal ein kleiner Bär... der wollte eine Geschichte hörn... Da erzählte ihm seine Mutti:
    ... Nun solltest es selber wissen. :'D
    Warum machst Du das nicht im Explorer?

    Wie oft willst Du dieses Programm starten?
    Das Programm wird in verschiedenen Niederlassungen zum einsatz kommen und jede Niederlassung hat Ihr eigenes "Public" Laufwerk.
    Jetzt gibt es bei dem Programm unter Einstellungen ein Textfeld in dem der Serverpfad gespeichert werden muss (Dieser wird vom Programm benötigt um Daten von dem Server zu laden).
    Ich wollte um es den Usern einfach er zu machen eine "Erkennen" Funktion einfügen, damit der UNC Pfad automatisch in das Textfeld geladen wird und gespeichert wird.

    Mit eurer Hilfe habe ich das jetzt aber hinbekommen :)

    Vielen Dank :)

    Gruß
    Nils