2011-08-19 11 views
5

Estoy intentando acceder a la ruta de destino desde un archivo de acceso directo (.lnk) en una máquina de 64 bits utilizando mi aplicación de 32 bits. Para obtener la ruta, estaba usando el siguiente código.Acceso a la ruta de destino desde un archivo de acceso directo en un sistema de 64 bits utilizando la aplicación de 32 bits

WshShell shell = new WshShell(); 
IWshShortcut link = (IWshShortcut)shell.CreateShortcut(flexShortcut); 
FLEXEXE = link.TargetPath; 

Esto devuelve la ruta C:\Program Files (X86)\.. en lugar de C:\Program Files\..

¿Hay alguna forma de solucionar esto?

+0

Debido a que su aplicación es de 32 bits creo que volverá siempre de esta manera – V4Vendetta

+1

mira esto http://stackoverflow.com/questions/2284725/ho w-do-get-the-path-of-program-files-whatever-of-the-architecture-of-the-target – V4Vendetta

+0

Gracias, pero cambiar la plataforma de compilación no funcionó. Esperaba una solución porque el acceso directo apunta a una aplicación de 64 bits en C: \ Program Files \ ... – Jimesh

Respuesta

0

Un truco para usarse es

  1. Obtener el nombre de archivo de link.TargetPath
  2. Get el directorio de trabajo de link.WorkingDirectory
  3. ruta Anexar
0

Este es un problema general en Windows. Intente editar un archivo en una carpeta System32 (por ejemplo, applicationHost.config) con un editor de 32 bits. Se le editando el archivo de la carpeta SysWOW64 lugar ... Es más que extraño ...

Cuestiones relacionadas