2010-10-12 19 views
8

Me gustaría saber dónde está la ruta de instalación de una aplicación. Sé que generalmente está en ... \ Archivos de programa ... pero creo que algunas personas lo instalan en diferentes lugares. Sé el nombre de la aplicación.¿Cómo puedo obtener la ruta de instalación de otra aplicación mediante programación?

Gracias.

+0

posible duplicado de [Determinar tercera aplicación Partido directorio de instalación] (http://stackoverflow.com/questions/1309142/determine-3rd-party-application-installation-directory) –

Respuesta

12

La forma ideal de encontrar la ruta de instalación de un programa (en Windows) es leerla desde el registro. La mayoría de los instaladores crearán una clave de registro para ese programa que contiene la ruta de instalación. Exactamente dónde está esta clave y su nombre varía según el programa en cuestión.

Para encontrar si el programa tiene una clave en el registro, abra 'regedit' y use la opción Editar> Buscar para tratar de localizar una clave con el nombre del programa. Si existe tal clave, puede leerla usando la clase RegistryKey en la biblioteca .NET Framework.

Si el programa no tiene una clave de registro, entonces otra opción es simplemente pedirle al usuario que busque el archivo .exe con OpenFileDialog, aunque esto obviamente no es ideal.

10

Muchos programas (¿la mayoría?) Crean una clave de registro App Paths. Echar un vistazo a

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths 
4

Si conoce la aplicación en cuestión (en comparación con cualquier aplicación) clave de registro es el probablemente la mejor opción (si existe).

La instalación podría poner en su propia medida "Instalar clave ruta" en algún lugar (también lo hacen un hallazgo como se ha mencionado Fara) o puede estar en la sección de desinstalación de programas instalados, por lo que se puede comprobar:

  • HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Windows \ CurrentVersion \ uninstall

Pero tenga en cuenta que cualquier nueva versión de una instalación podría cambiar la clave se escribe a cabo, tanto para una clave personalizada o para la entrada de desinstalación. Por lo tanto, consultar el registro debería ser solo para una instalación \ versión conocida.

tep

0

Puede utilizar MSI (I escribió una C# envoltorio para https://github.com/alialavia/MSINet aquí). Aquí está un ejemplo sencillo:

var location = ""; 
foreach (var p in InstalledProduct.Enumerate()) 
{ 
    try 
    { 
     if (p.InstalledProductName.Contains("AppName"))      
     { 
      location = p.InstallLocation; 
      break; 
     } 
    } 
    catch { } 
} 
Cuestiones relacionadas