Was tun für "Zuletzt verwendet"
-
Bei Windows 10 wird für viele Programme, die man von der Taskleiste, von Start oder aus der Programmliste jeweils mit der rechten Maustaste startet, eine Tabelle mit der Überschrift "Zuletzt verwendet" angezeigt. Die enthält die Dateinamen der zuletzt benutzten Dateien o.ä. Man kann dann auf einen der Namen klicken und das Programm wird mit dieser Datei geöffnet. Das macht z.B. Word, Excel, Paint, der ie11, der Explorer (dort sind es Ordner) u.a. Manche Programme machen das aber nicht, z.B. Gimp. Diese Liste erscheint nicht, wenn man das betreffende Programm von Desktop aus mit der rechten Maustaste auf dem zugehörigen Icon-Symbol startet.
Wenn man mit C# ein Programm erstellt, und diese die Aufgabe hat, Dateien zu öffnen und damit irgend etwas zu machen, was muss man tun, damit diese Liste "Zuletzt geöffnet" auch für das eigene Programm angelegt wird ?
-
Nach einer suche nach "c# windows 10 last used items task bar" kam das hier raus.
https://msdn.microsoft.com/en-us/windows/desktop/gg281362.aspx
Wichtig ist dass das feature jump list heist.
was dann zu folgender seite führte mit suche nach "c# windows 10 jump list"
https://docs.microsoft.com/en-us/dotnet/api/system.windows.shell.jumplist?view=netframework-4.8
-
Bei Benutzung vom Windows-Standard-"Datei öffnen/speichern"-Dialog wird automatisch eine Liste in der Registry unter
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\ComDlg32\OpenSaveMRU
(bzw. ab Win7OpenSavePidlMRU
) abgelegt, welche man dann selber nutzen kann, s.a. OpenSaveMRU.In der Antwort zu Getting the last opened file in fileopen dialog box gibt es C#-Code zum Auslesen der Registry (wenn auch mit Schreibfehler 'extention' statt
extension
;-).Edit: Ab Win7 muß der Registry-PIDL-Wert noch mittels SHGetPathFromIDList in einen Dateipfad umgewandelt werden, s.a. C#-Code in "c# Registry System.Byte[] to string".
PS: Unter OpenSaveFilesView gibt es sogar ein Extra-Programm zum Anzeigen dieser Daten.