| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Delphi: WinAPI и системное программирование > поиск информации для Uninstall |
| Автор: MFSham 6.11.2005, 20:28 |
| Если открыть стандартный windows-ий uninstaller, то напротив проги стоит дополнительная инфа как размер, дата последнего запуска и частота использования. Вот мне и надо где-то найти всю эту инфу. Что я знаю,что в HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\App Management\ARPCache хранится нужная инфа в ключе SlowInfoCache о некоторых программах. А между тем стандартный uninstall находит инфу практически ко всем прогам. Вот мне надо и узнать откуда он выковыривает эту инфу. В MSDN нашел такую структуру как SLOWAPPINFO, которая собственно и представляет собой SlowInfoCache. В замечаниях этой структуры говорится, что эта структура использует интерфейсы : GetSlowAppInfo и GetCachedSlowAppInfo. Как это все взаимодействует, мне так выяснить и не удалось. Может кто что-нибудь знает где найти хоть какую дополнительную инфу? |
| Автор: Girder 8.11.2005, 13:49 |
| Тебе в принципе достаточно два ключика смотреть: 1.HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\ 2.HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\App Management\ARPCache\ Ну если с первым там все понятно... то вот со вторым там есть в каждой позиции SlowInfoCache Формат его такой: 1. по 8 - ХЗ 2. c 8 по 15(включительно) байты - енто размер в байтах 3. c 16 по 23(включительно) байты - енто TFileTime (первые 4 байта енто Low, старшие енто High) - типо когда последний раз использывался 4. с 24 по 27(включительно) байты - енто типо сколько раз использывался(но точно не уверен =0 - редко <=12 - иногда >12 - часто |
| Автор: MFSham 8.11.2005, 23:53 | ||||
Про SlowInfoCache я уже на форуме спрашивал. Научился оттуда выдирать все данные, которые теперь собственно и использую. Вод собственно что он из себя представляет :
Girder где ты нашел число 12, которое является разграничителем частоты использования между редко и часто. Я планировал это число сделать 10. |
| Автор: Girder 9.11.2005, 00:04 |
| Посмотрел у себя в реестре и сравнил с uninstaller-ом |
| Автор: MFSham 9.11.2005, 01:12 |
| Ну это уже выше моего понимания! Короче проделал следующий эксперимент : Удалил из ARPCache папку с названием проги в которое естественно содержится SlowInfoCache. Запустил стандартный uninstall. И, о чудо, удаленная инфа нашлась. Проделал тот же эксперимент, но при этом запуслил RegMon. Проследил, куда он лазил для поиска инфы. Оказалось, что никуда. А в графе считывания инфы из SlowInfoCache стояло NOTFOUND. Ну понимаю размер можно как-либо подогнать, но дату последнего использования и частоту откуда взять??? Я уже весь регистр перечесал вдоль и поперек, но нифига не нашел. Между тем после того как запустить стандартный uninstall можно смело лезть в регистр и смотреть на вновь появишуюся удаленную папку, в которой содержится удаленный SlowInfocache. Из RegMon'a нашел, что доп. инфа для прог без SlowInfoCache еще берется из HKLM\Software\Microsoft\Windows\CurrentVersion\Installer\UserData\S-1-5-18\Products\{набор цифр}\InstallProperties\ Может кто знает, что за фокусы делает стандартный uninstall? |