KB14357 Получение списка установленного ПО используя My

Полезные статьи и переводы интересных статей
gaidar
System Debugger
System Debugger
 
Сообщения: 3152
Зарегистрирован: 23.12.2001 (Вс) 13:22

KB14357 Получение списка установленного ПО используя My

Сообщение gaidar » 31.05.2006 (Ср) 11:30

Как получить список установленного программного обеспечения используя объект My в Visual Basic 2005

Article ID: 914357
Last Review: May 19, 2006
Revision: 1.0

ВАЖНО: Эта статья содержит информацию по работе с реестром. Перед внесением изменений в реестр убедитесь, что сохранили резервную копию и понимаете знаете как восстановить реестр в случае возникновения проблем. Информацию о создании резервной копии и восстановлении реестра можно найти в KB256986.

ВВЕДЕНИЕ
Эта статья описывает как шаг за шагом создать приложение, позволяющее получить список установленного программного обеспечения, используя пространство имен My в Microsoft Visual Basic 2005. Эта статья также включает код примера, иллюстрирующий основные обсуждаемые моменты.

Замечание Для получения доступа к некоторым веткам реестра могут понадобится права администратора.

БОЛЕЕ ПОДРОБНАЯ ИНФОРМАЦИЯ
Требования
Должно быть установлено следующее ПО:
• Microsoft Windows 2000, Microsoft Windows XP, or Microsoft Windows Server 2003
• Microsoft Visual Basic 2005
Статья предполагает знакомство со следующими темами:
• Программирование на Visual Basic 2005
• Системный реестр Windows

Шаг 1: Создание консольного приложения

Чтобы создать консольное приложение следуйте следующим шагам:
1. Запустите Microsoft Visual Studio 2005.
2. В меню File, выберите New, и щелкните на Project.
3. Выберите Visual Basic, Console Application, введите имя приложения и нажмите OK.
Примечание Новое приложение создано файл Module1.vb отображается в окне редактирования исходного кода.

Шаг 2: Получение списка установленного ПО

ПРЕДУПРЕЖДЕНИЕ: Неправильное использование системного реестра Windows может привести к серьезным проблемам, требующим переустановку операционной системы. Microsoft не может гарантировать, что вы сможете решить возможную проблему с реестром самостоятельно.

Список установленного ПО находится в следующей ветке системного реестра: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall

Добавьте следующий код в метод Main для получения списка установленного ПО:

Код: Выделить всё
Dim hklm As Microsoft.Win32.RegistryKey
Dim software As Microsoft.Win32.RegistryKey
Dim subkeys() As String
Dim keyname As String hklm = My.Computer.Registry.LocalMachine
software = hklm.OpenSubKey("SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall") subkeys = software.GetSubKeyNames()


Примечание Этот код хранит список уставноленного ПО в качестве массива в переменной subkeys. Переменная keyname используется для отображения списка в шаге 3.variable is used to display the names of these products in step 3.

Шаг 3: Вывод списка установленного ПО на экран

Чтобы вывести список установленного ПО на экран, добавьте следующий код в метод Main.

Код: Выделить всё
For Each keyname In subkeys
    Console.WriteLine(keyname)
Next


Шаг 4: Завершение приложения

Чтобы завершить приложение добавьте следующий код в метод Main.
Код: Выделить всё
Console.WriteLine("press ENTER to exit")
Console.ReadLine()

Полный листинг кода для Module1.vb приведен ниже:
Код: Выделить всё
Module Module1 Sub Main()
Dim hklm As Microsoft.Win32.RegistryKey
Dim software As Microsoft.Win32.RegistryKey
Dim subkeys() As String
Dim keyname As String hklm = My.Computer.Registry.LocalMachine
software = hklm.OpenSubKey("SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall") subkeys = software.GetSubKeyNames()
For Each keyname In subkeys
    Console.WriteLine(keyname)
Next
Console.WriteLine("press ENTER to exit")
Console.ReadLine()
End Sub
End Module


Шаг 5: Проверка работоспособности кода

1. В меню Build выберите Build Solution.
2. В меню Debug нажмите Start для запуска приложения.
Примечание Должно появиться окно консольного приложения со списком установленного ПО.
3. Для выходя из приложения нажмите ENTER.

ССЫЛКИ
Больше информации о работе с реестром Windows вы можете найти на сайта Microsoft Developer Network (MSDN) Web site:
http://msdn.microsoft.com/library/en-us ... gistry.aspИнформацию об использовании объекта My для доступа к реестру Windows вы можете найти на слудующем сайте:
http://whidbey.msdn.microsoft.com/libra ... 29cc64.asp
The difficult I’ll do right now. The impossible will take a little while. (c) US engineers in WWII
I don't always know what I'm talking about, but I know I'm right. (c) Muhammad Ali

Ramzes
Скромный человек
Скромный человек
Аватара пользователя
 
Сообщения: 5004
Зарегистрирован: 12.04.2003 (Сб) 11:59
Откуда: Из гробницы :)

Сообщение Ramzes » 31.05.2006 (Ср) 13:04

gaidar
Это конечно полезно, но...что тут нового? заходим в нужную ветку (как и в любую другую) и считываем. так было и есть (насчет будет пока не уверен). Лучше бы написали как работать с реестром в целом... :roll:

Viper
Артефакт VBStreets
Артефакт VBStreets
Аватара пользователя
 
Сообщения: 4394
Зарегистрирован: 12.04.2005 (Вт) 17:50
Откуда: Н.Новгород

Сообщение Viper » 31.05.2006 (Ср) 13:45

зато тут есть магическое слово My - новое в VB2005 :D
Весь мир матрица, а мы в нем потоки байтов!

gaidar
System Debugger
System Debugger
 
Сообщения: 3152
Зарегистрирован: 23.12.2001 (Вс) 13:22

Сообщение gaidar » 31.05.2006 (Ср) 13:50

Я перевел, чтобы давать ссылки на эту статью :)
The difficult I’ll do right now. The impossible will take a little while. (c) US engineers in WWII
I don't always know what I'm talking about, but I know I'm right. (c) Muhammad Ali

Sebas
Неуловимый Джо
Неуловимый Джо
Аватара пользователя
 
Сообщения: 3626
Зарегистрирован: 12.02.2002 (Вт) 17:25
Откуда: столько наглости такие вопросы задавать

Сообщение Sebas » 31.05.2006 (Ср) 14:55

както топорно, лучше через ManagementObject
Win32_Product и полнее данные будут.
- Я никогда не понимал, почему они приходят ко мне чтобы умирать?

sebas<-@->mail.ru


Вернуться в VBStreets Knowledge Base

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 6

    TopList