Definierten Ordner schließen

  • VB.NET

Es gibt 5 Antworten in diesem Thema. Der letzte Beitrag () ist von LuckAss.

    Definierten Ordner schließen

    Hallo alle miteinander,
    ich habe folgendes Problem:
    In meinem Programm öffne ich per Button einen Ordner. Aus diesen Ordner kann ich dann die gewünschten Adressen kopieren und übernehmen.
    Wenn ich dann das Programm starte, soll er diesen aufgerufenen Ordner auch wieder automatisch schließen.

    Hier der Befehl zum aufrufen:


    VB.NET-Quellcode

    1. Private Sub cmdExplorer_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdExplorer.Click
    2. System.Diagnostics.Process.Start("explorer")
    3. End Sub


    Das Problem mit dem schließen dieses Ordner ist, denke ich, die richtige Adresse einzufügen.
    Wenn ich sage, dass er den Explorer auch wieder schließen soll, will er den Rechner herunterfahren.

    Hier mein Quellcode zum Beenden des Programms.

    VB.NET-Quellcode

    1. Try
    2. IO.File.Delete("C:\Dokumente und Einstellungen\...\Desktop\Test2\")
    3. Catch ex As Exception
    4. MsgBox("...")
    5. End Try


    Das ganze hab ich auch schon mit dem Befehl versucht.

    VB.NET-Quellcode

    1. Dim p() As Process = Process.GetProcessesByName("C:\Dokumente und Einstellungen\...\Desktop\Test2")
    2. p(0).CloseMainWindow()


    Hoffe ihr versteht die Problematik und wird schnell gelöst.

    Danke an alle im voraus
    Oder (zu @fichz:)
    willst Du den Explorer, in dem dieses Verzeichnis angezeigt wird, schließen
    oder
    willst Du das Verzeichnis löschen, das angezeigt wurde?
    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!
    Also, kurze Programmerläuterung.
    Ich will damit Datensicherung betreiben und zwar jeden Tag einmal Daten auf einen anderen Rechner kopieren und die/den kopierten Ordner mit dem aktuellen Datum versehen.
    Ein Button soll mir den Explorer öffnen, was er auch super macht.
    Da kann ich mir dann den Dateipfad, woher ich die Dateinen haben will und wohin ich sie kopiert haben möchte, raussuchen und ich mein Programm einfügen.
    Mit dem nächsten klick soll er das Programm starten und gleichzeitig den zuvor geöffneten Ordner schließen.

    Als Fehlermeldung kommt ohne die Try programmierung
    "Der Zugriff auf den Pfad "C:\Dokumente und Einstellungen\...\Desktop\Test2\" wurde verweigert."
    Warum das so ist weiß ich leider auch nicht.

    Hoffe ihr versteht jetzt besser mein Problem.
    Das Programm soll Ordner schließen und nicht bestimmte Dateinen, die geöffnet wurden.

    Einen anderen Ansatz habe ich leider auch nicht.

    LuckAss schrieb:

    Ein Button soll mir den Explorer öffnen, was er auch super macht.

    genau das übernimmt der FolderBrowserDialog für dich

    da musst du keinen Prozess mit "explorer.exe" starten.

    kleines Beispiel

    VB.NET-Quellcode

    1. Dim fbd As New FolderBrowserDialog
    2. If fbd.ShowDialog = Windows.Forms.DialogResult.OK Then
    3. MessageBox.Show(fbd.SelectedPath)
    4. End If


    Somit hast du den Pfad von wo du die Daten haben willst.
    diesen kannst du dir natürlich ein eine Variable speichern um damit zu arbeiten

    lg
    ScheduleLib 0.0.1.0
    Kleine Lib zum Anlaufen von Code zu bestimmten Zeiten