Де зберігається MRU для додатків у меню Пуск?


4

Наприклад, якщо у мене встановлений Excel і він з'являється в меню "Пуск", коли я наведу курсор миші на нього, праворуч відображаються найновіші використані документи.

Вони також з'являються, коли я клацнув правою кнопкою миші піктограму відкритої програми на панелі завдань.

Де зберігається цей список документів для всіх програм? Як я можу очистити його для певної програми?

Відповіді:


3

Відповідь в цій темі, я не розумію, другий крок "PInvoke", може хтось міг пояснити.

https://stackoverflow.com/questions/4678445/clean-windows-7-start-menu-mru-list

Тепер це рішення для мого питання:

Я очистив значення під ключі реєстру HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\UserAssist{CEBFF5CD-ACE2-4F4F-9178-9926F41749EA}\Count і HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\UserAssist{F4E57C4B-2036-45F0-A9AB-443BCFE33D9F}\Count

Потім я виконав наступний PInvoke, щоб оновити кеш Explorer.exe:

C #:

using System.Runtime.InteropServices;
[DllImport("shell32.dll")]
static extern void SHChangeNotify(int wEventId, int uFlags, IntPtr dwItem1, IntPtr wItem2);
private const int SHCNE_ASSOCCHANGED = 0x08000000;
private const int SHCNF_IDLIST = 0x0000;
private void ClearCache() {
    SHChangeNotify(SHCNE_ASSOCCHANGED, SHCNF_IDLIST, IntPtr.Zero, IntPtr.Zero);
}

1
Дякую! Схоже, вони все зашифрували у форматі rot13. Ось чому я не міг знайти, коли я шукав в реєстрі! (Я вважаю, що PInvoke - це лише виклик Windows API, який вимагає від Windows перечитати значення з реєстру після того, як ви їх запустили.)
KalEl

Як ви виконуєте Пінвоке?
Moab

@KalEl: Виклик API - це SHChangeNotify(). P / Invoke не пов'язаний безпосередньо з Windows API. Також відомий як Служби виклику платформи Це просто метод виклику власного коду (часто DLL-функцій, включаючи Windows API) з "керованого" (.NET Runtime) коду. C # - це мова .NET.
grawity

використання sliver.com/dotnet/snippet компілятор щоб зробити P / Invoke. Помістіть "using System.Runetime.InteropServices" у верхній частині кодового файлу, а решта в "main () {}", між фігурними дужками. Потім запустіть річ (десь знаходиться кнопка). Він повинен відкрити вікно командного рядка, яке зникне незабаром після цього.
sinni800

Я зроблю це для вас, не-програмістів. Завантажити це: dl.dropbox.com/u/16862782/ClearCache.cs і SnippetCompiler (один пост) і відкрийте файл .CS в SnipperCompiler. Потім натисніть на зелену стрілку "Пуск" на панелі інструментів. Коли з'явиться чорне вікно, просто натисніть кнопку, команда виконана. (Те, що я сказав у своєму попередньому коментарі, - це сміття, він не входить до Main (). Він переходить до визначення класу)
sinni800
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.