Automatisch Laufwerkbuchstaben finden zum Pfad, aber wie?

  • VB.NET

Es gibt 3 Antworten in diesem Thema. Der letzte Beitrag () ist von RodFromGermany.

    Automatisch Laufwerkbuchstaben finden zum Pfad, aber wie?

    Hallo zusammen, ich habe ein Code der funktioniert, aber ich finde das auf die art nicht so toll und habe bisher keine andere möglichkeit gefunden das der Laufwerkbuchstabe automatisch gesucht und gefunden wird um den Pfad zu öffnen.

    VB.NET-Quellcode

    1. Private Function DoesProcessExists(ByVal PName As String) As Boolean
    2. Return System.Diagnostics.Process.GetProcessesByName(PName).Length >= 1
    3. End Function
    4. Private Sub Harddisk(ByVal Laufwerkbuchstabe As String)
    5. Try
    6. Laufwerkbuchstabe = "C:" & "Program Files\Opera x64\opera.exe"
    7. Process.Start(Laufwerkbuchstabe)
    8. Catch ex0 As Exception
    9. Try
    10. Laufwerkbuchstabe = "D:" & "Program Files\Opera x64\opera.exe"
    11. Process.Start(Laufwerkbuchstabe)
    12. Catch ex1 As Exception
    13. Try
    14. Laufwerkbuchstabe = "E:" & "Program Files\Opera x64\opera.exe"
    15. Process.Start(Laufwerkbuchstabe)
    16. Catch ex2 As Exception
    17. Try
    18. Laufwerkbuchstabe = "F:" & "Program Files\Opera x64\opera.exe"
    19. Process.Start(Laufwerkbuchstabe)
    20. Catch ex3 As Exception
    21. MsgBox("Opera wurde nicht gefunden, bitte installiere Opera", MsgBoxStyle.Critical)
    22. End Try
    23. End Try
    24. End Try
    25. End Try
    26. End Sub
    27. Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
    28. If DoesProcessExists("opera") = False Then
    29. Harddisk(Laufwerkbuchstabe:=0)
    30. ElseIf DoesProcessExists("opera") = True Then
    31. Process.Start("www.google.de")
    32. Else
    33. MsgBox("Opera wurde nicht gefunden, bitte installiere Opera", MsgBoxStyle.Critical)
    34. End I


    Vielleicht kann jemand ein besseren Code vorschlagen?
    Hey,

    die ganzen Try-Catch-Blöcke sollten sofort verschwinden, das ist mal das, was sofort ins Auge springt. Was ist, wenn ich Opera in "c:\xyz\opera.exe" installiert habe?
    Die Unendlichkeit ist weit. Vor allem gegen Ende. ?(
    Manche Menschen sind gar nicht dumm. Sie haben nur Pech beim Denken. 8o
    Also wenn's speziell Opera sein soll, würde ich doch mal gucken, wo der Pfad in der Registry hinterlegt ist.
    Dann brauchst du nur zu prüfen, ob der Schlüssel vorhanden ist, und falls das der Fall ist, den Wert auslesen.

    Wenn mich nicht alles täusch, sollte der Wert hier liegen:

    Quellcode

    1. HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths


    Ansonsten würde ich, wie SpaceyX es schon angedeutet hat, rekursiv die Datei suchen.
    @Xiantrius:: Ich würde fast behaupten, dass Opera in der Path-Variable hinterlegt ist, bei Firefox und IExplorer ist es so.
    Dann probier einfach mal

    VB.NET-Quellcode

    1. Process.Start("opera.exe")
    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!