2010-10-07 8 views
0

J'ai une application côté client qui télécharge un programme d'installation Nullsoft à partir du serveur et exécute le programme d'installation comme un processus externe avec verbe réglé sur "runas". L'installateur Nullsoft a également une ligne dans le script qui demande des privilèges élevés. Sur Windows 7, cela fonctionne parfois - Windows affiche la boîte de dialogue UAC, en cliquant sur OK permet au programme d'installation de s'exécuter. Mais d'autres fois, la boîte de dialogue UAC n'apparaît jamais et, par conséquent, le programme d'installation ne se lance jamais. Si je double-clique manuellement sur le même installateur, cela fonctionne toujours, c'est-à-dire que la boîte de dialogue UAC apparaît, etc. La partie la plus déroutante est ce comportement incohérent, sur la même machine avec exactement les mêmes paramètres UAC cela fonctionne parfois et bloque l'autre fois. J'ai aussi essayé différents niveaux d'UAC, mais c'est toujours un hit-or-miss. Des idées?C#, UAC, installateur, Windows 7

Répondre

2

À quoi avez-vous configuré RequestExecutionLevel? Le simple paramétrage de "RequestExecutionLevel admin" devrait suffire, inutile d'utiliser le verbe runas, il suffit de démarrer le processus avec ShellExecute. (RequestExecutionLevel ne traite que de Vista et plus tard lorsque l'UAC est activé, utilisez le plugin usinfo nsis pour couvrir ces autres cas)