Пользовательские настройки должны быть записаны в HKCU \ Software, индивидуальные настройки машины - в HKLM \ Software. Под этими ключами структура [software vendor name]\[application name]
(например, HKLM\Software\Microsoft\Internet Explorer
) может быть наиболее распространенной, но это всего лишь соглашение, а не закон природы.
Многие (большинство?) Приложений также добавляют свои записи удаления в HKLM\Software\Microsoft\Windows\CurrentVersion\Uninstall\[app name]
, но, опять же, не все приложения делают это.
Это самые важные ключи; однако содержимое реестра не обязательно должно точно представлять установленное программное обеспечение - возможно, приложение было установлено один раз, но затем было удалено вручную, или, возможно, деинсталлятор не удалил все его следы. Если вы хотите быть уверены, проверьте файловую систему, чтобы увидеть, существует ли приложение там, где его записи реестра говорят, что оно есть.
Edit:
Если вы являетесь членом группы «Администраторы», вы можете проверить улей HKEY_USERS
- HKCU каждого пользователя фактически находится там (вам нужно знать SID пользователя или просмотреть все их).
Примечание: как говорит @Brian Ensink, «установленный» - это немного расплывчатое понятие - пытаемся ли мы найти то, что может запустить пользователь? Некоторые программы вообще не пишут в Реестр: ищите «переносимые приложения», чтобы увидеть приложения, которые были специально модифицированы для запуска непосредственно с носителя (CD / USB) и , а не , чтобы оставить следы на компьютер. Возможно, нам также придется сканировать диски, сетевые диски и все, что пользователь загружает, и общедоступные ресурсы Windows в Интернете (да, такие вещи существуют законно - на ум приходит \\live.sysinternals.com\tools
). В этом направлении нет реальных ограничений на то, что пользователь может запустить, если это не предотвращено системными политиками.