AZJIO
Цитата AZJIO:
SyDr, интересно, если права не будут получены, то фактически будет перезапуск в цикле. »
|
Если права не получены, функция ShellExecute устанвливает значение флага @error не равным 0.
ИМХО, тут идеально такое поведение:
Вывести запрос UAC
Если разрешение получено - продолжить работу, как обычно.
Если не получено - продолжить работу и вывести запрос с предложением отключить автоматический запрос на повышение прав.
Только тут проблема с бесконечным перезапуском, если запускать с ограниченными правами и отключённым UAC. То есть надо проверять ещё и включён/отключён ли UAC.
Morpheus, даже не знаю. Будем продолжать мучаться? Можно попробывать активировать окно (оно ведь активно после запуска? В панели задач.), затем установить атрибут поверх всех окон, и через минмальный промежуток времени снять.
Код:

GUISetState()
GUISetState(@SW_RESTORE)
Sleep(300)
WinSetOnTop($GUI, '', 1)
Sleep(300)
WinSetOnTop($GUI, '', 0)
Sleep(300)
Как ведёт себя окно?