hi
at the end of install need to start a program, so using this string
!insertmacro UAC_AsUser_ExecShell "" "$INSTDIR\${APP_EXE_FILE}" "" "" ""
But it isn't running
On init using this:
Function .OnInit
!insertmacro UAC_RunElevated
# call userInfo plugin to get user info. The plugin puts the result in the stack
userInfo::getAccountType
# pop the result from the stack into $0
pop $0
# compare the result with the string "Admin" to see if the user is admin.
# If match, jump 3 lines down.
strCmp $0 "Admin" +2
# if there is not a match, quit
Abort
# otherwise, continue
What am i doing wrong?
UAC_AsUser_ExecShell doing nothing
10 posts
There was a fix related to $instdir in the plugin recently so make sure you have the latest version. Also, you .onInit code is all wrong.
Thanks, also appearently my installer file uses ANSI encoding so most of the commands didn't work right.
i used this onInit code to test my admin rights - because of the above reason.
So now i test this onInit
!insertmacro UAC_RunElevated
${IfNot} ${UAC_IsAdmin}
Quit
${EndIf}
and it works fine
i used this onInit code to test my admin rights - because of the above reason.
So now i test this onInit
!insertmacro UAC_RunElevated
${IfNot} ${UAC_IsAdmin}
Quit
${EndIf}
and it works fine
Still wrong, you are supposed to check $0,$1,$2 and $3
I'm having exactly the same problem, !insertmacro UAC_AsUser_ExecShell '' '"$TEMP"' '' '' '' has no effect and it is not clear how to debug this.
Could not figure out how the original poster solved his problem...
Could not figure out how the original poster solved his problem...
I don't think starting $temp would work no matter what:
Admin's $temp is c:\users\admin\... , the normal user cannot access that path...
Admin's $temp is c:\users\admin\... , the normal user cannot access that path...
Also I'm pretty sure you can't just 'execute' a directory... You'll probably want to run a function as user, and in that function do Exec $windir\explorer.exe /n,"$temp" or something like that.
Yeah... you are probably right about the user not being able to access the admin's temp directory. I wonder how can I make NSIS download something to a directory that will be later accessible by the user...
P.S. Of course I'm not trying to run the directory, I removed the program name after I copy-pasted the code.
P.S. Of course I'm not trying to run the directory, I removed the program name after I copy-pasted the code.
Perhaps you can call a function as user and let that download?
UAC_AsUser_Call... right. Should work. Thanks