Schnellzugriff löschen

  • VB.NET

Es gibt 8 Antworten in diesem Thema. Der letzte Beitrag () ist von petaod.

    Ich glaube er meint die "Schnellzugriff"-Übersicht im Explorer. Und das möchte er aus seinem Programm heraus manipulieren
    Quellcode lizensiert unter CC by SA 2.0 (Creative Commons Share-Alike)

    Meine Firma: Procyon Systems
    Meine Privatwebseite: SimonC.eu

    Bitte nicht wundern, wenn meine Aktivitäten im Forum etwas langsamer sind, ich baue gerade mein Nebengewerbe zum Vollgewerbe aus.
    Ich versuche auf euch zurückzukommen :)
    Ich glaube der einzige Weg ist es, die besagten Ordner zu löschen.
    Der Windows-Schnellzugriff ist nur eine Ansicht von kürzlich verwendeten Ordnern, die kann man anders nicht da raus bekommen, soweit ich weiß.

    Nachtrag: Es gibt wohl doch Wege, habe ich gerade bei Google gelesen. Sorry für die falsche Antwort zuvor.


    Meine Website:
    www.renebischof.de

    Meine erste App (Android):
    PartyPalooza

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

    Also falls @haiflosse1 tatsächlich den Schnellzugriff vom Explorer meint, der lässt sich per Code auflisten, Ordner anpinnen und auch wieder entfernen. Auf die schnelle nur VB6 Code zur Hand.

    Visual Basic-Quellcode

    1. Option Explicit
    2. Private Sub Command1_Click()
    3. ' List QuickAccess
    4. Dim oShell As Object
    5. Dim oQuickAccess As Object
    6. Dim oItem As Object
    7. Set oShell = CreateObject("Shell.Application")
    8. Set oQuickAccess = oShell.Namespace("shell:::{679f85cb-0220-4080-b29b-5540cc05aab6}")
    9. For Each oItem In oQuickAccess.Items
    10. Debug.Print oItem.Name, oItem.Path
    11. Next
    12. End Sub
    13. ' Pin Folder to QuickAccess
    14. ' Set oShell = CreateObject("Shell.Application")
    15. ' Set oQuickAccess = oShell.Namespace("C:\Folder")
    16. ' Call oQuickAccess.Self.InvokeVerb("pintohome")
    17. ' Unpin Folder from QuickAccess
    18. ' Set oShell = CreateObject("Shell.Application")
    19. ' Set oQuickAccess = oShell.Namespace("shell:::{679f85cb-0220-4080-b29b-5540cc05aab6}")
    20. ' For Each oItem In oQuickAccess.Items
    21. ' If oItem.Path = "C:\Folder" Then
    22. ' Call oItem.InvokeVerb("unpinfromhome")
    23. ' End If
    24. ' Next

    Ich denke das Prinzip ist klar und ist locker nach .NET übersetzbar.
    Mfg -Franky-
    Danke für die Antworten.
    MIt der ki haben wir gemeinsam eine Lösung gefunden:
    Hier der Code

    VB.NET-Quellcode

    1. Imports System.IO
    2. Module MainModule
    3. Sub Main()
    4. Try
    5. ' Pfad zum Schnellzugriff-Verzeichnis
    6. Dim quickAccessPath As String = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.UserProfile), "AppData\Roaming\Microsoft\Windows\Recent")
    7. ' Alle Dateien im Schnellzugriff-Verzeichnis löschen
    8. For Each file As String In Directory.GetFiles(quickAccessPath)
    9. File.Delete(file)
    10. Next
    11. ' Pfad zum AutomaticDestinations-Verzeichnis
    12. Dim automaticDestinationsPath As String = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.UserProfile), "AppData\Roaming\Microsoft\Windows\Recent\AutomaticDestinations")
    13. ' Alle Dateien im AutomaticDestinations-Verzeichnis löschen
    14. For Each file As String In Directory.GetFiles(automaticDestinationsPath)
    15. File.Delete(file)
    16. Next
    17. Console.WriteLine("Alle Einträge im Schnellzugriff wurden gelöscht.")
    18. Catch ex As Exception
    19. Console.WriteLine("Fehler beim Löschen der Einträge im Schnellzugriff: " & ex.Message)
    20. End Try
    21. End Sub
    22. End Module

    lg
    @haiflosse1 Wann bei Auftreten einer Exception willst Du Dir denn die Meldung in Zeile 24 durchlesen? ;)
    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!

    haiflosse1 schrieb:

    Was ist das Problem mit der Exception in Zeile 24?
    Das wirst du nie erfahren, da du nur ein paar Millisekunden Lesezeit hast, bevor das Programm sich schließt.
    --
    If Not Program.isWorking Then Code.Debug Else Code.DoNotTouch
    --

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