Domanda

Abbiamo un'applicazione che deve conoscere il percorso da cui viene eseguita (che è sempre un percorso di rete).

Abbiamo impostato parte della nostra configurazione in base al percorso da cui l'applicazione viene avviata e desideriamo davvero che la configurazione utilizzi percorsi di unità di rete mappati anziché il percorso UNC alla risorsa.

Quello che abbiamo scoperto è che quando lanciamo la nostra applicazione senza elevazione UAC, siamo in grado di ottenere la directory che l'applicazione avviata usando

GetModuleFileName(NULL, buf, sizeof(buf));

Ma quando lanciamo elevato (cosa che in realtà dobbiamo fare), il buffer restituito ci fornisce un percorso basato su UNC invece di un percorso basato su lettera di unità.

Nota che eseguiamo sempre l'avvio da Esplora risorse navigando nell'albero delle cartelle della lettera di unità mappata.

Qualcuno ha qualche suggerimento su come ottenere il percorso basato sulla lettera di unità di EXE da un processo in esecuzione elevato?

È stato utile?
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top