Ответ довольно прост: просто измените порядок открытия окон:
UAC::Exec '' '"$PROGRAMFILES\Internet Explorer\iexplore.exe" "$url_2' '' ''
then...
UAC::Exec '' '"$PROGRAMFILES\Internet Explorer\iexplore.exe" "$url_1' '' ''
Таким образом, $ url_2 будет отставать от $ url_1, потому что он открывается позже ...
Редактировать
Если вы хотите иметь какое-то точное окно спереди, вы должны знать его имя (IE устанавливает имя на окно после того, как оно полностью загружено).
Используйте этот простой цикл, чтобы вывести необходимое окно впереди. (Я использовал Exec, но отлично работает с UAC и nsExec)
; This Window is opened as first
Exec '"$PROGRAMFILES\Internet Explorer\iexplore.exe" "www.google.sk"' # $url_1
; This is opened later
Exec '"$PROGRAMFILES\Internet Explorer\iexplore.exe" "www.unsigned-softworks.sk/installer"' # $url_2
CheckWindow:
Sleep 500 ; Wait some time (miliseconds)
; Find by Window class and by Window name
FindWindow $1 "IEFrame" "Google - Windows Internet Explorer"
# This name must be known in compile time!!!
# Get this name by running $url_1 in IE
; If window is not found (not loaded!) search again
IntCmp $1 0 CheckWindow Continue Continue
Continue:
# If found (opened & loaded), bring $url_1 to front
System::Call "User32::SetForegroundWindow(i) b ($1)"