View Single Post
Old 24th November 2015, 10:50   #7
LoRd_MuldeR
Major Dude
 
LoRd_MuldeR's Avatar
 
Join Date: Sep 2005
Location: Somewhere over the Slaughterhouse
Posts: 797
Quote:
Originally Posted by Anders View Post
Why do you think I called it an issue? When you turn UAC off on these systems, ShellExecute with the runas verb just starts the process unelevated! The UAC plug-in detects this and displays its own RunAs dialog to handle this case.
I was never suggesting to use the "runas" verb. If the "nested" (Un)Intstaller you try to launch requires elevation, as per its Manifest, ShellExecute(Ex) takes care of "elevation" automatically. It will trigger an UAC dialog, when the (Un)Intstaller gets launched from a non-elevated process. At the same time Exec and ExecWait would just fail (error #740), if you try to launch an (Un)Installer that requires elevation, as per its Manifest, from a non-elevated process. In the (rare) case that UAC is turned off, using Exec and ExecWait would work too. But otherwise they'd fail in that situation. At the same time, using an ShellExecute(Ex) solution should work in all cases.

Quote:
Originally Posted by Anders View Post
Sure but that is not what we are talking about here. You implied that ExecShell[Wait] is a simple drop in solution to start something elevated and it is not. What we need is a plug-in that does this properly...
I did not say that it (necessarily) does "start something elevated". What I actually said is that it allows for launching a process that requires elevation (as per its Manifest) from a non-elevated process. In that case Exec and ExecWait would just fail.

My Plugins: StdUtils | NSISList | CPUFeatures | ExecTimeout | KillProc
My source of inspiration: http://youtu.be/lCwY4_0W1YI
LoRd_MuldeR is offline   Reply With Quote