Bueno, la idea que adwind propuso
aquí la he llevado a cabo en VBS. La idea es la siguiente, Bindeamos un ejecutable principal y el VBS, que es el que se encarga de ejecutar el exe principal (con manifest) pidiendo privilegios, y si no se conceden, lo vuelve a ejecutar hasta que se le concedan los privilegios (o se cierre el proceso del script).
Código: Seleccionar todo
On error resume next
Dim oShell
Set oShell = Wscript.CreateObject("WScript.Shell")
Do
Err.Clear
oShell.Run "regedit.exe",1,1
loop While Err.Number = -2147023673
Adaptarlo a VB6 no precisa prácticamente de ningún cambio, y se puede mejorar mucho más en este lenguaje.
Sólo lo he probado en Vista, es posible que el número del error devuelto cambie en Seven, hay que probarlo.
Saludos!!