2011-08-19 5 views
5

Sto provando ad accedere al percorso di destinazione da un file di collegamento (.lnk) su una macchina a 64 bit utilizzando la mia applicazione a 32 bit. Per ottenere il percorso, stavo usando il seguente codice.Accesso al percorso target da un file di scelta rapida su un sistema a 64 bit tramite applicazione a 32 bit

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

Questo restituisce il percorso C:\Program Files (X86)\.. invece di C:\Program Files\..

C'è qualche lavoro in giro per questo?

+0

dal momento che la vostra applicazione è a 32 bit credo che sarà sempre tornare in questo modo – V4Vendetta

+1

check this out http://stackoverflow.com/questions/2284725/ho w-do-get-the-path-of-program-files-indipendentemente dall'architettura del target – V4Vendetta

+0

Grazie, ma la modifica della piattaforma di build non ha funzionato. Speravo in un lavoro in giro come il collegamento punta a un'applicazione a 64 bit in C: \ Programmi \ ... – Jimesh

risposta

0

Un trucco da utilizzare è quello di

  1. Prendi il nome del file da link.TargetPath
  2. Get la directory di lavoro da link.WorkingDirectory
  3. percorso Append
0

Questo è un problema generale in Windows. Prova a modificare un file in una cartella System32 (ad esempio applicationHost.config) con un editor a 32 bit. Sarete modificando il file dalla cartella SysWOW64 invece ... E 'più che strano ...