Menú Cerrar

Inno Setup Como agregar al icono el atributo Ejecutar como Administrador en nuestro Instalador

Cuando queremos crear nuestro instalador de algún programa y queremos que el acceso directo del escritorio o menú inicio de manera automática al instalar tenga el atributo Ejecutar como Administrador en vez de ponerlo de manera manual en propiedades del acceso directo les comparto este código que a mi me funciono para mi instalador.

[Registry]
; Keys for 32-bit systems
Root: HKCU32; \
Subkey: "SOFTWARE\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers"; \
ValueType: String; ValueName: "{app}\{#MyAppExeName}"; ValueData: "~ RUNASADMIN"; \
Flags: uninsdeletekeyifempty uninsdeletevalue; Check: not IsWin64
Root: HKLM32; \
Subkey: "SOFTWARE\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers"; \
ValueType: String; ValueName: "{app}\{#MyAppExeName}"; ValueData: "~ RUNASADMIN"; \
Flags: uninsdeletekeyifempty uninsdeletevalue; Check: not IsWin64

; Keys for 64-bit systems
Root: HKCU64; \
Subkey: "SOFTWARE\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers"; \
ValueType: String; ValueName: "{app}\{#MyAppExeName}"; ValueData: "~ RUNASADMIN"; \
Flags: uninsdeletekeyifempty uninsdeletevalue; Check: IsWin64
Root: HKLM64; \
Subkey: "SOFTWARE\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers"; \
ValueType: String; ValueName: "{app}\{#MyAppExeName}"; ValueData: "~ RUNASADMIN"; \
Flags: uninsdeletekeyifempty uninsdeletevalue; Check: IsWin64

Solo agrega este fragmento a tu script de inno setup para que tu icono de acceso directo quede con la opción de Ejecutar como administrador.

Si realmente desea configurar el indicador “Ejecutar como administrador” del acceso directo (como opuesto a forzar la ejecución de la aplicación de destino con privilegios de administrador), puede usar este código de muestra:

[Icons] Name: "{userdesktop}\My Program"; Filename: "{app}\MyProg.exe"; AfterInstall: SetElevationBit('{userdesktop}\My Program.lnk')
[Code] procedure SetElevationBit(Filename: string); var Buffer: string; Stream: TStream; begin Filename := ExpandConstant(Filename); Log('Setting elevation bit for ' + Filename); Stream := TFileStream.Create(FileName, fmOpenReadWrite); try Stream.Seek(21, soFromBeginning); SetLength(Buffer, 1); Stream.ReadBuffer(Buffer, 1); Buffer[1] := Chr(Ord(Buffer[1]) or $20); Stream.Seek(-1, soFromCurrent); Stream.WriteBuffer(Buffer, 1); finally Stream.Free; end; end;

Si te gustaria que compartiéramos mas fragmentos de codigo de ejemplo utiles para el compilador y generador de programas de instalacion inno setup solo dejalo en los comentarios.


¿Has visitado nuestro canal de Youtube.com/@SpekRegg?

Ver los resultados

Cargando ... Cargando ...

 

🦋 Siguenos tambien en Bluesky, el nuevo Twitter de los creadores de Twitter




Publicado en Soporte Tecnico

Te puede interesar...

5 comentarios

  1. Cristian Cordero

    Podrías hacer un tutorial sobre la parte de instalación de componentes para poder elegir por ejemplo que una carpeta se instale o no y poner música al instalador con un botón play pause.si es en un video para Youtube mejor.Saludos.

  2. Eioneus

    Muy bueno, me sirvió para lo que necesitaba, pero ¿sabrías el script exacto para dicho propósito pero para que al crear el acceso directo lo ejecute como administrador en propiedades desde la pestaña “Acceso directo” y el campo “Opciones Avanzadas”?, ya que este script lo hace tal y como si marcaras la casilla “Compatibilidad” y “Ejecutar este programa como administrador” con el consiguiente engorro de que en el icono de dicho acceso directo aparece el escudo en la parte inferior derecha y desearía realizar la compilación con la otra forma para que no aparezca el escudo en el icono. Gracias.

Responder a Cristian Cordero Cancelar la respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *