Я программно генерирую документы Office (в моем случае Word или Excel 2007), используя автоматизацию в VBA (в этом примере MS Access 2007, но это не должно сильно измениться) под Windows 7. Это работает нормально.
Поскольку документы генерируются автоматически, я не хочу, чтобы они отображались в последних списках. Для недавнего списка в Word я могу просто добавить «AddToRecentFiles: = False» при сохранении документа (см. Пример), или я мог бы впоследствии удалить записи через «Application.RecentFiles ...»
Мой код
Set objWord = CreateObject("Word.Application")
Set curDocument = objWord.Documents.Add
curDocument.SaveAs FileName:=Folder + "text.doc", FileFormat:=wdFormatDocument,
AddToRecentFiles:=False
curDocument.Close
Проблема в Я не смог найти способ отключить недавние списки из Windows 7 (то есть список переходов с последними элементами на панели задач для Word или последними использованными папками в Explorer и недавний список для Word в меню Пуск).
Мне известно, что эти списки хранятся в папке% APPDATA% \ Microsoft \ Windows \ Recent \ AutomaticDestitions, и я обнаружил, что для управления списком переходов существует «WindowsAPICodePack» (который я могу не использовать из VBA, верно?).
Чтобы добавить элемент в недавний список, я могу использовать старый API SHAddToRecentDocs из библиотеки "shell32.dll", но удаление с помощью этой функции API больше не работает, так как кажется, что оно влияет только на записи в старом "/ недавний "(и даже удаляет все, что не является моим намерением). Представляется также, что в презентациях по API панели задач Windows 7 только упоминается, как добавлять элементов, но не как избежать этого или удалять определенные записи.
Я что-то упустил или нет - простой и идеально подходящий для использования из VBA - способ манипулировать (или временно отключать) записью Windows 7?
С уважением
Andreas