Итак, есть программный продукт, которому иногда нужно обновлять свои файлы. Проблема в том, что при обновлении файлов в %SystemDisk%:\Program Files  я получаю access denied так как процессу не хватает привилегий. Как мне программно поднять диалог UAC для поднятия привилегий? 
Найденные мной варианты:  
- править манифест - <requestedExecutionLevel level="requireAdministrator" uiAccess="false"/> (не вариант, так как будет каждый раз спрашивать права)
- ShellExecute с параметром runas (не вариант это делать самому себе, так как теряеться эстетика ну и непонятно что воообще 

 )
Помогите советом "бородатого" программиста.