Страница 1 из 1

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

СообщениеДобавлено: 31.05.2006 (Ср) 11:30
gaidar
Как получить список установленного программного обеспечения используя объект 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

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

СообщениеДобавлено: 31.05.2006 (Ср) 13:45
Viper
зато тут есть магическое слово My - новое в VB2005 :D

СообщениеДобавлено: 31.05.2006 (Ср) 13:50
gaidar
Я перевел, чтобы давать ссылки на эту статью :)

СообщениеДобавлено: 31.05.2006 (Ср) 14:55
Sebas
както топорно, лучше через ManagementObject
Win32_Product и полнее данные будут.