UAC устроен таким образом, что повышений привилегий возможно только для всего процесса и только при создании. Значит, если Вы хотите иметь возможность выполнить какое-то действие с повышенными привилегиями, запросив их «на ходу», Вам надо код, выполняющий эти действия, выделить в отдельный процесс.
Вообще, создание приложения, корректно работающего с UAC не так просто как кажется (как хотелось бы) ;). Главное — правильно обработать ситуацию, когда Вам не дали повысить привилегии. Ну и не забудьте, конечно же, что Вашу программу могут запустить под WinXP, где никакого UAC нет — программу придётся явно выполнять от имени другого пользователя.
Есть довольно неплохая статья. Там пример для Делфи — надеюсь, она Вам поможет.