Bonjour.
Les solutions proposées sont intéressantes, mais elle présentent comme l'ont souligné Orax et ZDS un sérieux problème : Si le fichier n'a pas été ouvert par un double clic, vous n'aurez pas la bonne information !
D'après moi, la seule et unique solution fiable consisterait à lire l'information dans la base de registre.
Comme vous, j'ai trouvé toutes les données dans
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Search\RecentApps\] mais concernant les IDs je n'ai pas la même chose que vous !
Voici ce que j'arrive à trouver pour l'ouverture d'un fichier avec NotePad :
Code : Tout sélectionner
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Search\RecentApps\{5A960CD7-7B76-46A8-8922-426564C9FC3C}]
"LastAccessedTime"=hex(b):b0,3c,84,0a,e2,cc,d3,01
"AppId"="{1AC14E77-02E7-4E5D-B744-2EB1AE5198B7}\\NOTEPAD.EXE"
"LaunchCount"=dword:00000023
"AppPath"="C:\\WINDOWS\\system32\\notepad.exe"
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Search\RecentApps\{5A960CD7-7B76-46A8-8922-426564C9FC3C}\RecentItems]
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Search\RecentApps\{5A960CD7-7B76-46A8-8922-426564C9FC3C}\RecentItems\{0FE3B63B-3563-49EB-B478-8F17067B58AE}]
"Type"=dword:00000000
"Path"="D:\\Nouveau document texte.txt"
"DisplayName"="Nouveau document texte.txt"
"LastAccessedTime"=hex(b):0c,20,5b,38,db,cc,d3,01
"Points"=hex:00,00,40,40
L'idée serait de "scanner"
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Search\RecentApps] pour rechercher la clé qui contient les informations d'ID pour Notepad.
Ce qui dans mon cas correspond à
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Search\RecentApps\{5A960CD7-7B76-46A8-8922-426564C9FC3C}]
Du coup il suffit de lire les différentes entrées de :
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Search\RecentApps\{5A960CD7-7B76-46A8-8922-426564C9FC3C}\RecentItems], de récupérer chaque clé "LastAccessedTime" pour connaitre le dernier fichier ouvert et enfin dans "Path" de récupérer le nom et chemin du dernier fichier ouvert.
C'est effectivement plus complexe que ce qui a été proposé, mais hautement plus fiable. ^^