Como listar programas instalados en el computador?????

05/11/2004 - 00:54 por Nathaly | Informe spam
Un saludos muy cordial a todos... quisiera saber si me pueden ayudar en
algo...estoy creando un sistema en C# en el cual necesito necesito listar
todos los programas instalados en un computador y la ruta del ejecutable de
cada uno de los programas.
Revisando el registro de windows(ya que mis estaciones son win2000 y xp)
encontre esta ruta:
HKEY_LOCAL_MACHINE\SOFTWARE\MICROSOFT\WINDOWS\CURRENTVERSION\APP PATHS

crei ahi tener la solucion a mi problema pero revisando bien denote que
ciertos programas que instale no se encontraban aqui, como mcafee,virtual
pc, visual studio 6, etc..

por lo cual resolvi que esto no me servia...EXISTE ALGUNA FORMA DE CONCOCER
LO QUE NECESITO...

Agradeciendoles de antemano me despido,

saludos

Nathaly

Preguntas similare

Leer las respuestas

#1 Pedro Luna Montalvo, MVP
05/11/2004 - 01:04 | Informe spam
Mira en:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall

Saludos
Pedro Luna, [MVP VB.NET]
Gye, Ecu
Respuesta Responder a este mensaje
#2 Octavio Telis Aynes
05/11/2004 - 02:47 | Informe spam
Claro que hay una forma... es con WMI utilizando la clase Win32_Product,
sin embargo, la propiedad IntallLocation que es la que nos muestra la
información de los productos solo está para versiones muy resientes de
software, será porque tengo Win2K, tal vez en WinXP o WinSvr2K3 sea posible.
De cualquier manera te paso un ejemplo:


public DataTable GetProducts()
{
System.Management.ManagementObjectSearcher searcher = new
ManagementObjectSearcher("Select * From Win32_Product");
DataTable dt = new DataTable();
DataRow dr;

dt.Columns.Add("Caption") ;
dt.Columns.Add("Description");
dt.Columns.Add("IdentifyingNumber");
dt.Columns.Add("InstallDate");
dt.Columns.Add("InstallLocation");
dt.Columns.Add("InstallState");
dt.Columns.Add("Name");
dt.Columns.Add("PackageCache");
dt.Columns.Add("SKUNumber");
dt.Columns.Add("Vendor");
dt.Columns.Add("Version");

foreach(ManagementObject share in searcher.Get())
{
dr = dt.NewRow();

dr["Caption"] = share["Caption"] ;
dr["Description"] = share["Description"];
dr["IdentifyingNumber"] = share["IdentifyingNumber"];
dr["InstallDate"] = share["InstallDate"];
dr["InstallLocation"] = share["InstallLocation"];
dr["InstallState"] = share["InstallState"];
dr["Name"] = share["Name"];
dr["PackageCache"] = share["PackageCache"];
dr["SKUNumber"] = share["SKUNumber"];
dr["Vendor"] = share["Vendor"];
dr["Version"] = share["Version"];

dt.Rows.Add(dr);
}
return dt;
}


Este método devuelve un DataTable armado para se consumido por algún control
que soporte DataSource

Solo necistas agregar una referencia a tu proyecto de System.Management.Dll

Espero que te sea útil.

Saludos...

Octavio Telis Aynés
www.comunidadpuntonet.org/df/


"Nathaly" escribió en el mensaje
news:
Un saludos muy cordial a todos... quisiera saber si me pueden ayudar en
algo...estoy creando un sistema en C# en el cual necesito necesito listar
todos los programas instalados en un computador y la ruta del ejecutable


de
cada uno de los programas.
Revisando el registro de windows(ya que mis estaciones son win2000 y xp)
encontre esta ruta:
HKEY_LOCAL_MACHINE\SOFTWARE\MICROSOFT\WINDOWS\CURRENTVERSION\APP PATHS

crei ahi tener la solucion a mi problema pero revisando bien denote que
ciertos programas que instale no se encontraban aqui, como mcafee,virtual
pc, visual studio 6, etc..

por lo cual resolvi que esto no me servia...EXISTE ALGUNA FORMA DE


CONCOCER
LO QUE NECESITO...

Agradeciendoles de antemano me despido,

saludos

Nathaly



Respuesta Responder a este mensaje
#3 Nathaly
06/11/2004 - 00:58 | Informe spam
Gracias a todos por sus sugerencias.
Octavio probe lo que mencionas y me parecio muy bueno... me listo todo loq
ue tengo instalado pero tengo una duda en el campo INSTALLLOCATION me sale
null, a mas de la lista de programas instalados, necesito conocer la ruta
donde se encuentra el ejecutable de cada uno de los programas...

Este campo lo puedo obtener al realizar este query??''
La verdad estoy revisando la informacion con respecto al namespace que me
indicaste pero es todo un mundo

Porfa si me echar una mano con esto les agradeceria mucho.
saludos,
nathaly

"Octavio Telis Aynes" wrote in message
news:
Claro que hay una forma... es con WMI utilizando la clase Win32_Product,
sin embargo, la propiedad IntallLocation que es la que nos muestra la
información de los productos solo está para versiones muy resientes de
software, será porque tengo Win2K, tal vez en WinXP o WinSvr2K3 sea
posible.
De cualquier manera te paso un ejemplo:


public DataTable GetProducts()
{
System.Management.ManagementObjectSearcher searcher = new
ManagementObjectSearcher("Select * From Win32_Product");
DataTable dt = new DataTable();
DataRow dr;

dt.Columns.Add("Caption") ;
dt.Columns.Add("Description");
dt.Columns.Add("IdentifyingNumber");
dt.Columns.Add("InstallDate");
dt.Columns.Add("InstallLocation");
dt.Columns.Add("InstallState");
dt.Columns.Add("Name");
dt.Columns.Add("PackageCache");
dt.Columns.Add("SKUNumber");
dt.Columns.Add("Vendor");
dt.Columns.Add("Version");

foreach(ManagementObject share in searcher.Get())
{
dr = dt.NewRow();

dr["Caption"] = share["Caption"] ;
dr["Description"] = share["Description"];
dr["IdentifyingNumber"] = share["IdentifyingNumber"];
dr["InstallDate"] = share["InstallDate"];
dr["InstallLocation"] = share["InstallLocation"];
dr["InstallState"] = share["InstallState"];
dr["Name"] = share["Name"];
dr["PackageCache"] = share["PackageCache"];
dr["SKUNumber"] = share["SKUNumber"];
dr["Vendor"] = share["Vendor"];
dr["Version"] = share["Version"];

dt.Rows.Add(dr);
}
return dt;
}


Este método devuelve un DataTable armado para se consumido por algún
control
que soporte DataSource

Solo necistas agregar una referencia a tu proyecto de
System.Management.Dll

Espero que te sea útil.

Saludos...

Octavio Telis Aynés
www.comunidadpuntonet.org/df/


"Nathaly" escribió en el mensaje
news:
Un saludos muy cordial a todos... quisiera saber si me pueden ayudar en
algo...estoy creando un sistema en C# en el cual necesito necesito listar
todos los programas instalados en un computador y la ruta del ejecutable


de
cada uno de los programas.
Revisando el registro de windows(ya que mis estaciones son win2000 y xp)
encontre esta ruta:
HKEY_LOCAL_MACHINE\SOFTWARE\MICROSOFT\WINDOWS\CURRENTVERSION\APP PATHS

crei ahi tener la solucion a mi problema pero revisando bien denote que
ciertos programas que instale no se encontraban aqui, como mcafee,virtual
pc, visual studio 6, etc..

por lo cual resolvi que esto no me servia...EXISTE ALGUNA FORMA DE


CONCOCER
LO QUE NECESITO...

Agradeciendoles de antemano me despido,

saludos

Nathaly







Respuesta Responder a este mensaje
#4 Nathaly
06/11/2004 - 01:00 | Informe spam
Gracias Pedro revice lo que me indicabas y aunque lista gran parte de los
programas instalados tengo el problema que ahi no se indica por niingun lado
la ruta donde se encuentra el ejecutable de cada uno de los programas

Si tienes alguna otra sugerencia te lo agradeceria un mundo...

"Pedro Luna Montalvo, MVP" wrote in
message news:u$
Mira en:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall

Saludos
Pedro Luna, [MVP VB.NET]
Gye, Ecu


Respuesta Responder a este mensaje
#5 Octavio Telis Aynes
06/11/2004 - 01:35 | Informe spam
Para serte sincero... depende de los instaladores cumplir con este
estandar...

Actualmente, como podrás darte cuenta, solo el VS.NET 2003 y Office2003
muestran la ruta de instalación, y bueno, es un buen objeto pero no muestra
en sí el campo pues no se ha asignado al momento de instalar cada programa.
Si pues, tal vez en unos años tengamos estas clases completas.

Otra manera pues sería conseguirlo en el registry...

la información de esta clase está en:
http://msdn.microsoft.com/library/d...roduct.asp

en esta sección encontrarás más clases que pueden servir.

En fin, es cuestión de esperar a que compañias como InstallShield y Wise
quiera cumplir con estos estandares.


Saludos...

Octavio Telis Aynés
www.comunidadpuntonet.org/df/


"Nathaly" escribió en el mensaje
news:
Gracias a todos por sus sugerencias.
Octavio probe lo que mencionas y me parecio muy bueno... me listo todo


loq
ue tengo instalado pero tengo una duda en el campo INSTALLLOCATION me sale
null, a mas de la lista de programas instalados, necesito conocer la ruta
donde se encuentra el ejecutable de cada uno de los programas...

Este campo lo puedo obtener al realizar este query??''
La verdad estoy revisando la informacion con respecto al namespace que me
indicaste pero es todo un mundo

Porfa si me echar una mano con esto les agradeceria mucho.
saludos,
nathaly

email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida