Sto riscontrando un problema con il buon vecchio bdeadmin.exe in Vista. Per prima cosa, prendiamo le risposte prevedibili fuori dagli schemi:Come impostare "Esegui questo programma come amministratore" a livello di programmazione
"Non è necessario che l'applicazione sia elevata."
Questo fa. È la vita.
"È necessario incorporare un file manifest."
È già compilato, ha molti anni, la società che lo ha creato non ha intenzione di farlo di nuovo, ed è installato da un Merge Module (file MSM).
"BDE è obsoleto, dovresti usare dbExpress"
Un milione e mezzo di linee di codice. 'Nuff ha detto.
"Eliminare un file manifest accanto all'EXE."
Provato, non ha fatto nulla. Come test, lo stesso file manifest è stato in grado di fare in modo che molti altri file EXE richiedessero l'elevazione, ma non quello che volevo. Qualcosa dentro impedisce che il manifest esterno venga letto.
"Crea un collegamento e imposta SLDF_RUNAS_USER."
Impossibile farlo, è un'applet del pannello di controllo.
L'unica cosa che ha funzionato era impostare "Esegui questo programma come amministratore" nella scheda Compatibilità della finestra Proprietà. Non dovrei dovere dire agli utenti di fare questo. Male per gli affari. Ho bisogno che l'installatore faccia questo. Il file MSM utilizza un percorso statico.
La risposta accettata ha le posizioni del registro da leggere per i valori desiderati. – Patrick
Non è necessario ricompilare (o ricollegare) solo per incorporare un manifest. È una risorsa regolare che puoi aggiungere come qualsiasi altra risorsa. A meno che il binario non sia firmato digitalmente e non possa essere modificato, questa sarebbe la soluzione semplice. Ri-imballare questo in un nuovo modulo di unione dovrebbe essere fattibile pure. – IInspectable
Riguardo al ~ per Win 8: noto sul mio Win 7 che c'è un # (cancelletto) seguito dallo spazio seguito da RUNASADMIN, quindi molto probabilmente è un ~ (tilda) su Win 8. E (chissà quale nuovo simbolo) su windows 10 ... –