Sto lanciando la mia applicazione di Windows in questo modo dopo il completamento dell'installazione:Come avviare un file eseguibile al termine dell'installazione correttamente?
!define MUI_FINISHPAGE_RUN_FUNCTION "LaunchApplication"
...
Function LaunchApplication
ExecShell "" "$INSTDIR\Application.exe"
FunctionEnd
Ma questo ha una strana e indesiderato effetto collaterale. Apparentemente è la mia applicazione lanciata con diritti di amministratore.
Non riesco a trascinare & eliminare i dati tra un browser Web (testato con Firefox e IE) e la mia applicazione.
Se esco dall'applicazione (la sessione è iniziata da NSIS), e riavvio dall'icona del menu Start tutto funziona! - Posso trascinare & di rilascio nei browser senza problemi.
Quindi ho il sospetto che dall'inizio dell'installazione ci sia una richiesta UAC, in qualche modo i diritti UAC vengono trasferiti al processo che sto avviando dopo l'installazione. Poiché i browser eseguono un processo a bassa sicurezza, Windows si rifiuta di scambiare qualsiasi dato con essi (nell'istanza di processo avviata con NSIS).
Come avviare un exe da NSIS, in modo che questo problema UAC/di sicurezza non si verifichi?
È corretto notare che i processi elevati eseguiranno automaticamente altri processi elevati. Questo comportamento è esistito (e ha infastidito gli utenti) da quando UAC è stato introdotto in Vista. Il sistema blocca i trasferimenti di dati tra app non elevate e elevate a meno che determinate chiavi del Registro di sistema non siano impostate. – EricLaw