Ho un programma che deve creare i file nella directory Documento personale durante l'installazione. Questo è un severo requisito fisso, non è possibile cambiarlo. Il problema è che se l'utente esegue "Esegui come amministratore" sul file di installazione, la costante costante {userdocs} punta alla directory dei documenti dell'amministratore e non all'utente che ha effettuato l'accesso originale.Come scrivere nella directory Documenti dell'utente con il programma di installazione quando l'utente ha utilizzato "Esegui come amministratore"
Così, Googled e trovato questo:
Install files to original user's My Docs folder via Inno Setup on Windows Vista/7
La risposta è sbagliata, però, perché InnoSetup afferma addirittura che
Se un utente avvia il programma di installazione facendo clic destro il suo file EXE e selezionando "Esegui come amministratore", questo flag, purtroppo, non avrà alcun effetto , perché l'installazione non ha la possibilità di eseguire alcun codice con le credenziali dell'utente originale . Lo stesso vale se l'installazione viene avviata da un processo già elevato. Si noti, tuttavia, che questa non è una limitazione specifica per l'installazione Inno ; In questi casi, i programmi di installazione basati su Windows Installer non possono restituire le credenziali dell'utente originale a .
Immagino di poter incoraggiare l'utente a non utilizzare Amministratore Esegui come, ma non so come impedirgli di non arrivare in alto.
Stavo pensando di fare in modo che il programma stesso abbia impostato la directory dei nomi di Documenti \ Programmi al primo avvio (dopo l'installazione). Questo workaround funzionerebbe? Dovrebbe copiare i file dalla sua directory dei file di programma come utente potenzialmente limitato. È possibile o mi imbatterò in problemi di privilegio?
Quali documenti degli utenti possono essere prodotti da un programma di installazione? Il tuo programma di installazione è un word processor? –