UAC plug-in: Difference between revisions

From NSIS Wiki
Jump to navigationJump to search
Line 22: Line 22:
=== === Comment ça marche?
=== === Comment ça marche?


==== Fournir le code nécessaire ====
Nécessaire ==== ==== Fournir le code
* Tout d'abord, le script NSIS doit préciser qu'il devrait fonctionner avec des privilèges d'utilisateur, et non pas des privilèges d'administrateur.
* Tout d'Abord, le script NSIS DOIT fonctionner devrait preciser qu'il Itinéraires des privilèges d'Utilisateur, et non des pas des privilèges d'administrateur.


<highlight-nsis>
<highlight-nsis>
utilisateur RequestExecutionLevel / * RequestExecutionLevel OBLIGATOIRE! * /
Utilisateur RequestExecutionLevel / * RequestExecutionLevel compte tenu des adaptations! * /
</ Highlight-nsis>
</ Highlight-nsis>
* Ensuite, l'approche la plus commune est de laisser l'UAC plugin initialiser dans le code onInit.:
* Ensuite, l'Approche commune la plus intérêt de laisser l'UAC plugin initialisateur onInit DANS code le.:
<highlight-nsis>
<highlight-nsis>
; Tenter de donner l'UAC plug-in d'un processus utilisateur et un processus d'admin.
; Tenter de Donner l'UAC plug-in d'Utilisateur non Processus et Processus de l'ONU d'admin.
Fonction. OnInit
Fonction. OnInit


UAC_Elevate:
UAC_Elevate:
    UAC:: RunElevated
UAC:: RunElevated
    StrCmp 1223 0 $ UAC_ElevationAborted; de dialogue UAC interrompu par l'utilisateur?
StrCmp 1223 0 $ UAC_ElevationAborted; de dialogue interrompu par l'Utilisateur UAC?
    StrCmp 0 0 $ 0 UAC_Err; erreur?
StrCmp 0 0 0 $ UAC_Err; Erreur?
    StrCmp 1 1 $ 0 UAC_Success; Sommes-nous la vraie affaire ou tout simplement l'enveloppe?
StrCmp 1 1 0 $ UAC_Success; Sommes-nous de La Vraie affaire ous Tout simplement l'enveloppe?
    Quitter
Quitter
    
 
UAC_Err:
UAC_Err:
    MB_ICONSTOP MessageBox "Impossible d'élever, d'erreur $ 0"
MB_ICONSTOP MessageBox "Impossible d'elever, d'Erreur $ 0"
    Avorter
Avorter


UAC_ElevationAborted:
UAC_ElevationAborted:
    # élévation a été abandonnée, fonctionner normalement?
# Élévation une Abandonnée Été, ordinary fonctionner?
    MessageBox MB_ICONSTOP «Ce programme d'installation requiert un accès admin, abandon!"
MessageBox MB_ICONSTOP «Ce programme d'installation requiert Accès non admin, abandonner!"
    Avorter
Avorter


UAC_Success:
UAC_Success:
    StrCmp 1 3 $ 4; Admin?
StrCmp 1 3 4 $; Admin?
    StrCmp 3 1 $ 0 UAC_ElevationAborted; Essayez à nouveau?
StrCmp 3 1 0 $ UAC_ElevationAborted; Essayez à nouveau?
    MessageBox MB_ICONSTOP «Ce programme d'installation requiert un accès admin, essayer à nouveau"
MessageBox MB_ICONSTOP «Ce programme d'installation requiert Accès non admin, à essayer nouveau"
    goto UAC_Elevate
goto UAC_Elevate
    
 
FunctionEnd
FunctionEnd
</ Highlight-nsis>
</ Highlight-nsis>
* Avant la sortie d'installation, vous devrez nettoyer le plugin. Si vous n'avez pas, il laissera derrière lui une UAC.dll en% de l'utilisateur dossier% TEMP. Un moyen facile de nettoyer les dégâts est en fournissant le texte suivant:
* Avant la sortie d'installation, Vous devrez Nettoyer le plugin. Pas si n'avez vous, il laissera Derrière Lui UNE UAC.dll en% de l'Utilisateur dossier TEMP%. Un Moyen facile de s'égoutter les Dégâts intérêt en fournissant le texte précédent:
<highlight-nsis>
<highlight-nsis>
Fonction. OnInstFailed
Fonction. OnInstFailed
    UAC:: Décharger; doit appeler décharger!
UAC:: Décharger; décharger appeler liard!
FunctionEnd
FunctionEnd


Fonction. OnInstSuccess
Fonction. OnInstSuccess
    UAC:: Décharger; doit appeler décharger!
UAC:: Décharger; décharger appeler liard!
FunctionEnd
FunctionEnd
</ Highlight-nsis>
</ Highlight-nsis>
Rappelez-vous que si votre installation se ferme avant que ces événements peuvent être déclenchés, vous devez fournir une UAC:: décharger avant le programme d'installation se ferme.
Que Rappelez-vous si l'installation Votre soi avant au Québec ferme CES Événements déclenchés may être, Vous Devez fournir UNE UAC:: avant décharger le programme d'installation se ferme.


==== Comment l'UAC plug-in fonctionne avec des privilèges d'utilisateur et admin ====
==== Comment l'UAC plug-in fonctionne Itinéraires des privilèges d'Utilisateur et admin ====
* Lorsque le programme d'installation lance NSIS, il a des privilèges d'utilisateur (tel que spécifié par l'utilisateur RequestExecutionLevel). Immédiatement, l'installateur NSIS appelle son code onInit.. (Note, aucune fenêtre n'est encore visible à ce stade). L'UAC plugin permet un processus de''deuxième''installateur et tente de l'élever avec des privilèges admin. Si nécessaire, un UAC ou Exécuter en tant que boîte de dialogue s'affiche pour aider à élever ce deuxième processus avec des privilèges admin. À ce stade, si vous ouvrez le Gestionnaire des tâches, vous verrez deux processus en cours d'installation. Le processus utilisateur peut être considéré comme le processus externe, et le processus de admin le processus interne.
* Lorsque le programme d'installation NSIS lance, il une des privilèges d'Utilisateur (tél. nominale specified Que l'Utilisateur RequestExecutionLevel). Immédiatement, l'installateur NSIS onInit Appelle code fils .. (Note, Fenêtre Aucune n'est Encore visible stade CE A). L'UAC plugin Përmet non Processus de''deuxième''installateur et tente de l'elever Itinéraires des privilèges admin. Nécessaire Si, ous l'ONU UAC Executer en important au Québec boîte de dialogue s'affiche de verser secouriste à elever CE Deuxième Processus Itinéraires des privilèges admin. CE un stade, si Vous ouvrez le Gestionnaire des Tâches, Vous verrez Deux Processus en cours d'installation. Le Processus Utilisateur may être de considére Comme le Processus externe, et le Processus de admin le Processus interne.
* Une fois élevés, l'admin / processus interne s'affiche. C'est la fenêtre d'installation que les utilisateurs verront.
* Une Fois eleves, l'admin / s'affiche Processus interne. C'Est La Fenêtre d'installation au Québec les users verront.
* Maintenant que vous avez un processus admin, vous pouvez continuer à laisser votre script faire sa chose. Si jamais vous avez besoin de faire quelque chose au niveau utilisateur, vous le faites par l'UAC plugin, et l'UAC plugin fonctionnera whats nécessaire par l'utilisateur invisible / processus externe. Par exemple, l'UAC:: Exec peut exécuter quelque chose avec des privilèges d'utilisateur et non pas des privilèges d'administrateur. Ou UAC:: ExecCodeSegment peut exécuter une fonction entière avec les privilèges utilisateur.
* Maintenant Que Vous AVEZ Processus non admin, continuateur pouvez laisser script Vous à Votre faire SA a choisi. Si Jamais Vous AVEZ Besoin de faire journey au Niveau Utilisateur, Vous le FAITES par l'UAC plugin, et l'UAC plugin whats fonctionnera Nécessaire par l'Utilisateur invisible / externe Processus. Par exemple, l'UAC:: Quelque Exec exécuteur may choisi Itinéraires des privilèges d'Utilisateur et non des pas des privilèges d'administrateur. Ou UAC:: Peut ExecCodeSegment exécuteur Fonction UNE AVEC Entière les privilèges Utilisateur.


Exemples === ===
Exemples === ===
NOTE''<font color="red">: syntaxe a changé dans 0,2 alphas, tout sur cette page utilise la> vieille syntaxe'''</ police
NOTE''<font color="red">: syntaxe une DANS Changé 0,2 alphas, Tout sur la page this utiliser la> vieille syntaxe'''</ police


De nombreux exemples se trouvent dans le fichier. zip ci-dessus. Si vous voulez une meilleure idée de ce que ce plugin peut faire, étudier ces exemples. Un bref aperçu de deux exemples simples sont donnés ici:
De nombreux exemples se vendor Dans Le fichier. zip ci-Dessus. Si Vous Voulez UNE Meilleure idée de la CE au Québec CE plugin may faire, CES étudier "exemples. Un bref Aperçu de Deux exemples simples sont «donnés ici:
==== Création d'un raccourci utilisateur ====
==== Création d'Utilisateur non Raccourci ====


UAC_RealWorldExample.nsi ne:
NE UAC_RealWorldExample.nsi:


<highlight-nsis>
<highlight-nsis>
CreateShortcuts Fonction
CreateShortcuts Fonction
  CreateShortcut "lnk $ Desktop \ $ {APPNAME}." "$ Windir \ Notepad.exe"
CreateShortcut "lnk $ Desktop \ $ {APPNAME}." "$ Windir \ Notepad.exe"
FunctionEnd
FunctionEnd


«Raccourci bureau» Section
«Raccourci bureau» Section
  GetFunctionAddress $ 0 CreateShortcuts
GetFunctionAddress $ 0 CreateShortcuts
  UAC:: ExecCodeSegment 0 $
UAC:: ExecCodeSegment 0 $
SectionEnd
SectionEnd
</ Highlight-INS>
</ Highlight-INS>


Dans cet exemple, nous voulons exécuter la fonction CreateShortcuts avec les privilèges utilisateur, il peut donc créer un raccourci au niveau utilisateur. Donc, premièrement, définir la fonction. Ensuite, utilisez GetFunctionAddress pour obtenir l'adresse de cette fonction. Ensuite, appelez UAC:: ExecCodeSegment de demander au processus utilisateur externe / pour exécuter cette fonction. Comme la fonction sera exécuté au niveau utilisateur, il va créer un raccourci pour l'utilisateur plutôt que pour l'administrateur.
Par exemple CET Dan, voulons UNO exécuteur la Fonction CreateShortcuts AVEC les privilèges Utilisateur, may il Fait how are exchange rates non Utilisateur au Niveau Raccourci. Fait, PREMIÈREMENT, definir la Fonction. Ensuite, utilisez GetFunctionAddress verser Obtenir l'adresse Fonction of this. Ensuite, Appelez UAC: au ExecCodeSegment demandeuse de Processus externe Utilisateur / pour Fonction this exécuteur. Comme la Fonction sérums executé au Niveau Utilisateur, il Raccourci how are exchange rates va verser l'ONU au Québec plutot Utilisateur versez l'administrateur.


==== Lancement d'une application avec des privilèges utilisateur ====
==== Lancement d'Une application Itinéraires des privilèges Utilisateur ====
<highlight-nsis>
<highlight-nsis>
;! Insertmacro UAC_AsUser_ExecShell <Command> <Fichier> <Paramètres> <WorkingDir> <ShowWindow>
;! Insertmacro UAC_AsUser_ExecShell <Command> <Fichier> <Paramètres> <WorkingDir> <ShowWindow>
! Insertmacro UAC_AsUser_ExecShell 'ouverte' $ INSTDIR \ $ {} APPFILE '-FirstRun' $ INSTDIR'''
! $ «Ouverte» insertmacro UAC_AsUser_ExecShell INSTDIR \ $ {} APPFILE '-FirstRun' $ INSTDIR'''
</ Highlight-nsis>
</ Highlight-nsis>


Lorsque $ INSTDIR \ $ {} APPFILE est le chemin vers le fichier que vous souhaitez lancer.
Lorsque $ INSTDIR \ $ {} CEST APPFILE le chemin vers le fichier au Québec Vous souhaitez lancer.


Si vous utilisez la peau MUI et le lancement d'installation de l'application pour vous, vous aurez besoin pour faire un peu plus de travail.
Si Vous utilisez la peau et le MUI Lancement d'installation de l'application Pour Vous, Vous aurez Besoin PEU faire verser des Nations Unies ainsi que de Travail.


<highlight-nsis>
<highlight-nsis>
! Définir MUI_FINISHPAGE_RUN
! Definir MUI_FINISHPAGE_RUN
! Définir MUI_FINISHPAGE_RUN_FUNCTION ExecAppFile
! ExecAppFile MUI_FINISHPAGE_RUN_FUNCTION Definir


Fonction ExecAppFile
Fonction ExecAppFile
    ! Insertmacro UAC_AsUser_ExecShell 'ouverte' $ INSTDIR \ $ {} APPFILE '-FirstRun' $ INSTDIR'''
! $ «Ouverte» insertmacro UAC_AsUser_ExecShell INSTDIR \ $ {} APPFILE '-FirstRun' $ INSTDIR'''
FunctionEnd
FunctionEnd
</ Highlight-nsis>
</ Highlight-nsis>


Gardez à l'esprit que vous avez encore à définir MUI_FINISHPAGE_RUN (comme vide) sinon MUI ne fournira pas l'option à tous.
Gardez à l'esprit Que Vous AVEZ Encore definir à MUI_FINISHPAGE_RUN (vide Comme) Sinon Pas MUI NE fournira l'option à Tous.


=== === Notes importantes
=== === IMPORTANTES Notes


# Si vous avez besoin d'utiliser l'UAC plugin pour le programme de désinstallation, ainsi, vous aurez besoin d'initialiser l'UAC plugin pour le programme de désinstallation, comme par un.onInit. N'oubliez pas d'exécuter le nettoyer avec l'UAC:: décharger avant votre sortie de désinstallation. Bonnes adresses pour le nettoyer sont un.OnUnInstFailed et un.OnUnInstSuccess
# Besoin Si AVEZ Vous d'utiliser »l'UAC Plugin pour le programme de désinstallation, Ainsi, Besoin d'initialisateur Vous aurez l'UAC Plugin pour le programme de désinstallation, un.onInit nominale comme. Pas d'N'oubliez exécuteur le s'égoutter AVEC l'UAC:: décharger avant Votre sortie de désinstallation. Bonnes adresses versez sont Nettoyer le un.OnUnInstFailed un.OnUnInstSuccess et
# Le processus utilisateur externe / n'affiche pas de sortie de ce qui s'est passé. Par exemple, si vous avez le processus utilisateur externe / créer un raccourci, et il échoue, l'intérieur / admin processus actuellement visible n'affichera rien pour indiquer qu'un problème est survenu. C'est parce que le processus utilisateur externe / ne pas encore communiquer de retour à l'intérieur / admin processus.
# Le Processus Utilisateur externe / n'affiche Pas de sortie de CE dépassé S'est Qui. Par exemple, si Vous AVEZ le Processus Utilisateur externe / how are exchange rates Raccourci de l'ONU, et il echoue, l'intérieur / admin Processus rien actuellement n'affichera visible verser pertains survenu intérêt qu'un probleme. Parce Que C'Est le Processus Utilisateur externe / communicate NE Pas encore de retour à l'intérieur / Processus admin.
# Quand un utilisateur standard ou de l'information limitée administrateur d'approvisionnements dans la boîte de dialogue Exécuter en tant que, vous pouvez éprouver l'ennui avec les permissions du fichier extrait. Par exemple, si un Windows 2000 standard info administrateur utilisateur fournit dans la boîte de dialogue Exécuter en tant que, et l'installateur NSIS extrait un fichier. Exe, puis essayez d'appeler cela. Exe par un Exec peut échouer. S'il s'agit d'un problème, vous souhaitez utiliser le [[AccessControl_plug-en | AccessControl plug-in]].
# Quand l'ONU ous Utilisateur standard de l'administrateur Limitée informations d'Approvisionnements de Dans la boîte de dialogue Executer de Québec en important, Vous pouvez éprouver l'ennui AVEC les permissions du fichier extrait. Par exemple, si l'ONU Windows 2000 standard info administrateur Utilisateur fournit de Dans la boîte de dialogue Executer de Québec en important, et l'installateur fichier extrait NSIS des Nations Unies. Exe, essayez IUP d'appeler l'ACDE. Exe par l'ONU Exec may échouer. s'agit d'or prohibition Problème de l'ONU, Vous souhaitez utiliser »le [[AccessControl_plug-en | AccessControl plug-in]].


=== === Environnements testés
=== === Testicules Environnements


Ce plugin a été testé dans les environnements suivants:
Ce plugin, un Été Testé DANS les environnements suivants:


* Windows 7 - UAC Le - Administrateur
* Windows 7 - UAC Le - Administrateur
* Windows Vista - UAC Le - Administrateur
* Windows Vista - UAC Le - Administrateur
* Windows Vista - UAC Off - Administrateur
* Windows Vista - UAC Off - Administrateur
* Windows Vista - UAC Le - Standard User - info utilisateur de l'administrateur des approvisionnements dans la boîte de dialogue UAC
* Windows Vista - UAC Le - Standard User - Utilisateur de l'info administrateur des Approvisionnements de Dans la boîte de dialogue UAC de
* Windows Vista - UAC Le - Standard utilisateur - ne fournit pas d'informations d'administrateur dans la boîte de dialogue UAC
* Windows Vista - UAC Le - pas fournit d'informations NE d'administrateur de Dans la boîte de dialogue UAC de - Standard Utilisateur
* Windows Vista - UAC Off - Standard User - info utilisateur de l'administrateur d'approvisionnements dans la boîte de dialogue Exécuter en tant que
* Windows Vista - UAC Off - Standard User - Utilisateur de l'info administrateur d'Approvisionnements de Dans la boîte de dialogue Executer de Québec en important
* Windows Vista - UAC Off - Standard utilisateur - ne fournit pas d'informations d'administrateur dans la boîte de dialogue Exécuter en tant que
* Windows Vista - UAC Off - pas fournit d'informations NE d'administrateur de Dans la boîte de dialogue Executer de Québec en important - Standard Utilisateur
* Windows XP - Administrateur
* Windows XP - Administrateur
* Windows XP - Limited utilisateur - info utilisateur de l'administrateur d'approvisionnements dans la boîte de dialogue Exécuter en tant que
* Windows XP - Limited Utilisateur - info Utilisateur de l'administrateur d'Approvisionnements de Dans la boîte de dialogue Executer de Québec en important
* Windows XP - Limited utilisateur - ne fournit pas d'informations d'administrateur dans la boîte de dialogue Exécuter en tant que
* Windows XP - Limited Utilisateur - pas fournit d'informations NE d'administrateur de Dans la boîte de dialogue Executer de Québec en important
Windows * 2000 - Administrateur
Windows 2000 * - Administrateur
* Windows 2000 - User Standard - info utilisateur de l'administrateur d'approvisionnements dans la boîte de dialogue Exécuter en tant que
* Windows 2000 - User Standard - info Utilisateur de l'administrateur d'Approvisionnements de Dans la boîte de dialogue Executer de Québec en important
* Windows 2000 - Standard utilisateur - ne fournit pas d'informations d'administrateur dans la boîte de dialogue Exécuter en tant que
* Windows 2000 - Standard Utilisateur - pas fournit d'informations NE d'administrateur de Dans la boîte de dialogue Executer de Québec en important
* Windows 95 & 98 ont été testés au début de fabrique et nous espérons encore du travail (n ° d'élévation ici pour des raisons évidentes)
* Windows testicules 95 & 98 Été Ont débuts au rappel de fabrique et UNO esperons du travail (n ° d'ici élévation verser des raisins évidentes)


Windows ME et NT4 n'ont pas été testées, mais devrait fonctionner. (Si vous avez testé sur un de ces OS'es, s'il vous plaît rendre compte des résultats ici ou sur le forum)
Windows ME et NT4 fonctionner n'ont Pas Été Testees, devrait MAIS. (Si Vous AVEZ Testé sur l'ONU de la SCÉ OS'es, s'il vous plaît rendre Compte des Résultats ICI OU sur le forum)

Revision as of 12:49, 24 October 2010

Author: Anders (talk, contrib)


Télécharger == == & Info Ce plug-in tentatives de contourner les problèmes d'installation sur Vista UAC / 7. Ce plug-in permet à votre installateur pour fonctionner avec un processus de niveau utilisateur et un processus de niveau administrateur. Cela vous permet d'accomplir des choses qui seraient autrement très difficile. Par exemple, vous pouvez avoir un niveau installateur admin lancer un autre processus au niveau utilisateur. Ou vous pouvez avoir un niveau installateur admin créer des raccourcis au niveau utilisateur.

Tout a commencé en ce fil. Il a été testé sur le terrain avec de bons résultats. Il est encore nettement au stade bêta (c.-à-utiliser à vos risques et périls).

branche courante: [% http://stashbox.org/988128/UAC% 20v0.2.2c 20 - 2020100828.zip% v0.2.2c]

branche vieillesse: [20v0.0.11d.zip% http://stashbox.org/560965/UAC v0.0.11d]

style="border:2px solides: Tout le code sur cette page s'applique à l'ancienne version, la syntaxe a changé légèrement de 0,2 et vous devez utiliser les macros dans uac.nsh </ font>

=== === L'installation de base Pour installer le plugin UAC dans votre configuration NSIS, il vous suffit de copier deux fichiers ZIP de ce qui précède:

  • Pour les installateurs ANSI,UAC.nshcopier dans votre répertoire d'inclusion (par exemple C: \ Program Files \ NSIS \ Include) etUAC.dll chez sortie / A dans votre répertoire de plugins ( par exemple C: \ Program Files \ NSIS \ Plugins).
  • Pour les installateurs Unicode,UAC.nshcopier dans votre répertoire d'inclusion (par exemple C: \ Program Files \ NSIS \ Unicode \ Include) etUAC.dll chez sortie / U dans votre Plugins répertoire (par exemple C: \ Program Files \ NSIS \ Unicode \ Plugins).

=== === Comment ça marche?

Nécessaire ==== ==== Fournir le code

  • Tout d'Abord, le script NSIS DOIT fonctionner devrait preciser qu'il Itinéraires des privilèges d'Utilisateur, et non des pas des privilèges d'administrateur.

<highlight-nsis> Utilisateur RequestExecutionLevel / * RequestExecutionLevel compte tenu des adaptations! * / </ Highlight-nsis>

  • Ensuite, l'Approche commune la plus intérêt de laisser l'UAC plugin initialisateur onInit DANS code le.:

<highlight-nsis>

Tenter de Donner l'UAC plug-in d'Utilisateur non Processus et Processus de l'ONU d'admin.

Fonction. OnInit

UAC_Elevate: UAC:: RunElevated StrCmp 1223 0 $ UAC_ElevationAborted; de dialogue interrompu par l'Utilisateur UAC? StrCmp 0 0 0 $ UAC_Err; Erreur? StrCmp 1 1 0 $ UAC_Success; Sommes-nous de La Vraie affaire ous Tout simplement l'enveloppe? Quitter

UAC_Err: MB_ICONSTOP MessageBox "Impossible d'elever, d'Erreur $ 0" Avorter

UAC_ElevationAborted:

  1. Élévation une Abandonnée Été, ordinary fonctionner?

MessageBox MB_ICONSTOP «Ce programme d'installation requiert Accès non admin, abandonner!" Avorter

UAC_Success: StrCmp 1 3 4 $; Admin? StrCmp 3 1 0 $ UAC_ElevationAborted; Essayez à nouveau? MessageBox MB_ICONSTOP «Ce programme d'installation requiert Accès non admin, à essayer nouveau" goto UAC_Elevate

FunctionEnd </ Highlight-nsis>

  • Avant la sortie d'installation, Vous devrez Nettoyer le plugin. Pas si n'avez vous, il laissera Derrière Lui UNE UAC.dll en% de l'Utilisateur dossier TEMP%. Un Moyen facile de s'égoutter les Dégâts intérêt en fournissant le texte précédent:

<highlight-nsis> Fonction. OnInstFailed UAC:: Décharger; décharger appeler liard! FunctionEnd

Fonction. OnInstSuccess UAC:: Décharger; décharger appeler liard! FunctionEnd </ Highlight-nsis> Que Rappelez-vous si l'installation Votre soi avant au Québec ferme CES Événements déclenchés may être, Vous Devez fournir UNE UAC:: avant décharger le programme d'installation se ferme.

Comment l'UAC plug-in fonctionne Itinéraires des privilèges d'Utilisateur et admin

  • Lorsque le programme d'installation NSIS lance, il une des privilèges d'Utilisateur (tél. nominale specified Que l'Utilisateur RequestExecutionLevel). Immédiatement, l'installateur NSIS onInit Appelle code fils .. (Note, Fenêtre Aucune n'est Encore visible stade CE A). L'UAC plugin Përmet non Processus dedeuxièmeinstallateur et tente de l'elever Itinéraires des privilèges admin. Nécessaire Si, ous l'ONU UAC Executer en important au Québec boîte de dialogue s'affiche de verser secouriste à elever CE Deuxième Processus Itinéraires des privilèges admin. CE un stade, si Vous ouvrez le Gestionnaire des Tâches, Vous verrez Deux Processus en cours d'installation. Le Processus Utilisateur may être de considére Comme le Processus externe, et le Processus de admin le Processus interne.
  • Une Fois eleves, l'admin / s'affiche Processus interne. C'Est La Fenêtre d'installation au Québec les users verront.
  • Maintenant Que Vous AVEZ Processus non admin, continuateur pouvez laisser script Vous à Votre faire SA a choisi. Si Jamais Vous AVEZ Besoin de faire journey au Niveau Utilisateur, Vous le FAITES par l'UAC plugin, et l'UAC plugin whats fonctionnera Nécessaire par l'Utilisateur invisible / externe Processus. Par exemple, l'UAC:: Quelque Exec exécuteur may choisi Itinéraires des privilèges d'Utilisateur et non des pas des privilèges d'administrateur. Ou UAC:: Peut ExecCodeSegment exécuteur Fonction UNE AVEC Entière les privilèges Utilisateur.

Exemples === === NOTE: syntaxe une DANS Changé 0,2 alphas, Tout sur la page this utiliser la> vieille syntaxe'</ police

De nombreux exemples se vendor Dans Le fichier. zip ci-Dessus. Si Vous Voulez UNE Meilleure idée de la CE au Québec CE plugin may faire, CES étudier "exemples. Un bref Aperçu de Deux exemples simples sont «donnés ici:

Création d'Utilisateur non Raccourci

NE UAC_RealWorldExample.nsi:

<highlight-nsis> CreateShortcuts Fonction CreateShortcut "lnk $ Desktop \ $ {APPNAME}." "$ Windir \ Notepad.exe" FunctionEnd

«Raccourci bureau» Section GetFunctionAddress $ 0 CreateShortcuts UAC:: ExecCodeSegment 0 $ SectionEnd </ Highlight-INS>

Par exemple CET Dan, voulons UNO exécuteur la Fonction CreateShortcuts AVEC les privilèges Utilisateur, may il Fait how are exchange rates non Utilisateur au Niveau Raccourci. Fait, PREMIÈREMENT, definir la Fonction. Ensuite, utilisez GetFunctionAddress verser Obtenir l'adresse Fonction of this. Ensuite, Appelez UAC: au ExecCodeSegment demandeuse de Processus externe Utilisateur / pour Fonction this exécuteur. Comme la Fonction sérums executé au Niveau Utilisateur, il Raccourci how are exchange rates va verser l'ONU au Québec plutot Utilisateur versez l'administrateur.

Lancement d'Une application Itinéraires des privilèges Utilisateur

<highlight-nsis>

! Insertmacro UAC_AsUser_ExecShell <Command> <Fichier> <Paramètres> <WorkingDir> <ShowWindow>

! $ «Ouverte» insertmacro UAC_AsUser_ExecShell INSTDIR \ $ {} APPFILE '-FirstRun' $ INSTDIR </ Highlight-nsis>

Lorsque $ INSTDIR \ $ {} CEST APPFILE le chemin vers le fichier au Québec Vous souhaitez lancer.

Si Vous utilisez la peau et le MUI Lancement d'installation de l'application Pour Vous, Vous aurez Besoin PEU faire verser des Nations Unies ainsi que de Travail.

<highlight-nsis> ! Definir MUI_FINISHPAGE_RUN ! ExecAppFile MUI_FINISHPAGE_RUN_FUNCTION Definir

Fonction ExecAppFile ! $ «Ouverte» insertmacro UAC_AsUser_ExecShell INSTDIR \ $ {} APPFILE '-FirstRun' $ INSTDIR FunctionEnd </ Highlight-nsis>

Gardez à l'esprit Que Vous AVEZ Encore definir à MUI_FINISHPAGE_RUN (vide Comme) Sinon Pas MUI NE fournira l'option à Tous.

=== === IMPORTANTES Notes

  1. Besoin Si AVEZ Vous d'utiliser »l'UAC Plugin pour le programme de désinstallation, Ainsi, Besoin d'initialisateur Vous aurez l'UAC Plugin pour le programme de désinstallation, un.onInit nominale comme. Pas d'N'oubliez exécuteur le s'égoutter AVEC l'UAC:: décharger avant Votre sortie de désinstallation. Bonnes adresses versez sont Nettoyer le un.OnUnInstFailed un.OnUnInstSuccess et
  2. Le Processus Utilisateur externe / n'affiche Pas de sortie de CE dépassé S'est Qui. Par exemple, si Vous AVEZ le Processus Utilisateur externe / how are exchange rates Raccourci de l'ONU, et il echoue, l'intérieur / admin Processus rien actuellement n'affichera visible verser pertains survenu intérêt qu'un probleme. Parce Que C'Est le Processus Utilisateur externe / communicate NE Pas encore de retour à l'intérieur / Processus admin.
  3. Quand l'ONU ous Utilisateur standard de l'administrateur Limitée informations d'Approvisionnements de Dans la boîte de dialogue Executer de Québec en important, Vous pouvez éprouver l'ennui AVEC les permissions du fichier extrait. Par exemple, si l'ONU Windows 2000 standard info administrateur Utilisateur fournit de Dans la boîte de dialogue Executer de Québec en important, et l'installateur fichier extrait NSIS des Nations Unies. Exe, essayez IUP d'appeler l'ACDE. Exe par l'ONU Exec may échouer. s'agit d'or prohibition Problème de l'ONU, Vous souhaitez utiliser »le AccessControl plug-in.

=== === Testicules Environnements

Ce plugin, un Été Testé DANS les environnements suivants:

  • Windows 7 - UAC Le - Administrateur
  • Windows Vista - UAC Le - Administrateur
  • Windows Vista - UAC Off - Administrateur
  • Windows Vista - UAC Le - Standard User - Utilisateur de l'info administrateur des Approvisionnements de Dans la boîte de dialogue UAC de
  • Windows Vista - UAC Le - pas fournit d'informations NE d'administrateur de Dans la boîte de dialogue UAC de - Standard Utilisateur
  • Windows Vista - UAC Off - Standard User - Utilisateur de l'info administrateur d'Approvisionnements de Dans la boîte de dialogue Executer de Québec en important
  • Windows Vista - UAC Off - pas fournit d'informations NE d'administrateur de Dans la boîte de dialogue Executer de Québec en important - Standard Utilisateur
  • Windows XP - Administrateur
  • Windows XP - Limited Utilisateur - info Utilisateur de l'administrateur d'Approvisionnements de Dans la boîte de dialogue Executer de Québec en important
  • Windows XP - Limited Utilisateur - pas fournit d'informations NE d'administrateur de Dans la boîte de dialogue Executer de Québec en important

Windows 2000 * - Administrateur

  • Windows 2000 - User Standard - info Utilisateur de l'administrateur d'Approvisionnements de Dans la boîte de dialogue Executer de Québec en important
  • Windows 2000 - Standard Utilisateur - pas fournit d'informations NE d'administrateur de Dans la boîte de dialogue Executer de Québec en important
  • Windows testicules 95 & 98 Été Ont débuts au rappel de fabrique et UNO esperons du travail (n ° d'ici élévation verser des raisins évidentes)

Windows ME et NT4 fonctionner n'ont Pas Été Testees, devrait MAIS. (Si Vous AVEZ Testé sur l'ONU de la SCÉ OS'es, s'il vous plaît rendre Compte des Résultats ICI OU sur le forum)