Zuletzt verwendet

  • VB.NET

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

    Zuletzt verwendet

    Hallo,
    ich habe folgende Situation.

    Ich möchte gerne wissen, wie die Liste "Zuletzt verwendet" gefüllt wird, welche auf einen Rechtsklick auf eine Startmenü Kachel hin erscheint.
    So etwas hier...



    Folgendes habe ich schon heraus bekommen.
    Es gibt 2 Arten, wie diese Einträge entstehen.

    1. Man öffnet die entsprechende Datei, welche über ihre Dateiendung einer Anwendung zugeordnet wurde. Bei *.XLSX Dateien ist dies Excel. Wenn man also eine Exceldatei aus dem Explorer heraus öffnet, wird automatische diese Datei in die Liste eingetragen
    2. Man öffnet die Anwendung, z.B. Excel, und öffnet in Excel eine Exceldatei. Oder erstellt eine neue Exceldatei. Auch dies führt dazu, dass die Einträge in dieser Liste gefüllt werden.

    Jetzt zu meinem Problem.
    Ich habe ein Programm geschrieben, welches per Config-Dateien bestimmte Aktionen ausführt. Diese Config-Dateien habe eine eigene Dateiendung, welche ich meinem Programm als "Öffnen mit" zugewiesen habe. Starte ich diese Configdateien aus dem Explorer heraus, werden diese in die entsprechende Liste meiner Anwendung eingetragen. Per Rechtsklick auf der Kachel meines Programmsymbols im Startmenü erscheint dann der Eintrag. Soweit so gut.
    Was ich jetzt noch möchte ist der Fall 2 wie bei einer Office Anwendung. Ich kann in meinem Programm neue Config-Dateien erstellen oder bestehende öffnen. Jetzt möchte ich es erreichen, dass die Liste sich ebenfalls mit dem neuen Config-Datei-Eintrag füllt.

    Wie bekommt man das hin?

    Danke für eure Ideen...

    Gruß
    Micha

    Bitte die Verwendung des richtigen Unterforums beachten. Verschoben. ~fufu
    Bilder
    • Liste Zuletzt verwendet.png

      22,16 kB, 318×294, 84 mal angesehen

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

    @mkottke1 Willkommen im Forum. :thumbup:
    Diese Last-Files-Information im Explorer ist nur verfügbar für Programme, die "beim Betriebssystem registriert" sind.
    Dazu gehört auch, dass die Extension mit Deinem Programm verknüpft wird. Ob das allein genügt, weiß ich nicht.
    Frag Frau Google nach vb.net Datei-Extension registrieren.
    Im Forum gibt es auch einiges dazu, aber die Suchmaschine ist nicht so gut wie bei Google.
    Gugst Du hier: code.msdn.microsoft.com/window…oziationen-mit-C-41c6968e
    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!
    Hallo,
    ich habe in der Zwischenzeit etwas herumgesucht. Dabei bin ich auf die so genannten Jumplists oder Sprunglisten gestoßen. Leider habe ich mein Programm mit Visual Basic (Visual Studio Express 2015 für Windows) als Windows Forms .NET Framework 4.5 und nicht als WPF Anwendung geschrieben. Daher habe ich Probleme, den Code einer WPF Anwendung für die Benutzung von Sprunglisten in eine Windows Forms Anwendung umzuschreiben.

    Beim weiteren Suchen bin ich auf das WindowsAPICodePack gestoßen. Leider sind alle Links die sich auf das msdn beziehen tot. Es gibt es Pack in der Version 1.1.2 bei NuGet. Allerdings finde ich dem Packet nicht die Anweisungen und Befehle für Sprunglisten. Kann man dieses CodePack noch in der originalen Version von MS bekommen?
    Hat jemand schon mal Sprunglisten mit Windows Forms realisiert?

    Danke...
    Gruß
    Micha

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

    Hallo,
    ich habe mein Problem nun selbst lösen können.
    Eigentlich ganz einfach. Ich hatte vergessen, den 2. Teil WindowsAPICodePack vom NuGet zu laden. Es gibt dort die CORE und den SHELL DLLs. Ich hatte nur die CORE. Daher gab es die Jumplist-Anweisungen nicht.


    hier der Code, welcher beim in SHOWN Methode aufgerufen wird:

    VB.NET-Quellcode

    1. Imports Microsoft.WindowsAPICodePack.Taskbar
    2. Imports Microsoft.WindowsAPICodePack.Taskbar.JumpList
    3. Public JList As JumpList
    4. ​Private Sub Form1_Shown(sender As Object, e As EventArgs) Handles Me.Shown
    5. If TaskbarManager.IsPlatformSupported Then
    6. JList = JumpList.CreateJumpList()
    7. JList.ClearAllUserTasks()
    8. JList.KnownCategoryToDisplay = JumpListKnownCategoryType.Recent
    9. JList.Refresh()
    10. End If
    11. End Sub



    Wenn dann ein neuer Eintrag in den Recent Teil erfolgen soll, dann muss nur noch folgendes gemacht werden

    VB.NET-Quellcode

    1. If Form1.JList IsNot Nothing Then
    2. Form1.JList.AddToRecent(Dateiname)
    3. Form1.JList.Refresh()
    4. End If



    Möglicherweise braucht das ja mal jemand...
    Danke für die Geduld...

    mkottke1 schrieb:

    Leider habe ich mein Programm mit Visual Basic als Windows Forms und nicht als WPF Anwendung geschrieben.
    Editiere mal diesen Deinen Thread und gib ihm Sprache und Framework-Version.
    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!