Durante los últimos días, algunos de nuestros usuarios han recibido un mensaje de error conocido con estrellas de variable de tiempo de ejecución nsis. Este problema puede surgir por varias razones. Hablaremos de esto a continuación.
Recomendado
ADVERTENCIA: las líneas de más de $ NSIS_MAX_STRLEN se cortarán / dañarán. NO use esta función, realmente puede actualizar% PATH%, use EnVar_plug-in en su lugar.
Configuración temporal de variables de entorno
Si simplemente desea utilizar una variable de entorno eficaz en todos los procesos de instalación y sus subprocesos:
System :: Call 'Kernel32 :: SetEnvironmentVariable (t, t) i ("nombre", "valor"). r0 'Error de StrCmp $ 0 8 ExecWait ProgThatReadsEnv.exe TerminadoCulpa: MessageBox MB_OK "No se puede organizar la variable de entorno"hecho:
Para sortear la limitación NSIS_MAX_STRLEN al actualizar% Path%, puede probar esta función.
Establecer variables de entorno de forma permanente
Variables existentes
EnvVarUpdate desaprueba las funciones WriteEnvStr y un.DeleteEnvStr de un sitio de blogs de este tipo debido a las rutas específicas y otras razones para las listas de rutas. Sin embargo, lo que sigue se aplica a variables inequívocas del entorno herbal.Un.DeleteEnvStr puede corromper el contenido de la variable PATH por completo si la ruta remota puede ser generalmente un subconjunto de otra ruta. Por ejemplo, si la RUTA contiene Y “c: microsoft windows system32 wbem”, elimina “C: Windows system32″, el final será ” wbem”. WriteEnvStr ciertamente no evita el trabajo duplicado en el que el usuario ejecuta el instalador en ocasiones (y el código del instalador no comprueba la recepción de duplicados). Sin embargo, estos procedimientos están pensados para que entren en juego con Windows 9x y ME en la siguiente sección, porque EnvVarUpdate a menudo no admite la adición de variables en el archivo autoexec.bat.
Su propia variable
Si configura / elimina su propia variable meteorológica MYVAR actual en lugar de adaptar muchas existentes, como la variable de lugar PATH:
Software de funciones
Funciones para Windows 95, 95 y ME
Si desea colocar una variable de entorno que persista para todos los demás procesos y también después del reinicio, debe volver a usar las siguientes funciones. Para usarlos todos y cada uno de ellos, guárdelos como un archivo. NSH y compóngalos en su secuencia de comandos, o simplemente cópielos y péguelos en su secuencia de comandos. Si elige guardarlo como. Archivo NSH, utilice:
! empoderar WriteEnvStr.nsh # o el nombre de su elección favorita# ...Sección "Agregar Var" env empujar MyEnvVar Empuje MyEnvVarValue WriteEnvStr llamadaFin de tramo# ...Eliminar sección # Eliminar variable este es el empuje de MyEnvVar Llamando a un.DeleteEnvStrFin de la sección
Si los clientes esperan que la variable de entorno sea un poco más accesible para todos los operadores informáticos que utilizan la computadora, configure ALL_USERS antes de habilitar WriteEnvStr.nsh (o la parte del script que hará lo mismo que el guardado. Archivo NSH). Por ejemplo:
! Definir ALL_USERS! habilitar WriteEnvStr. number nsh o cualquier otro st Su elección
Código de función
Recomendado
¿Tu PC funciona lento? ¿Tienes problemas para iniciar Windows? ¡No te desesperes! Fortect es la solución para usted. Esta herramienta poderosa y fácil de usar diagnosticará y reparará su PC, aumentando el rendimiento del sistema, optimizando la memoria y mejorando la seguridad en el proceso. Así que no espere, ¡descargue Fortect hoy mismo!
Nota. En Windows 9x, se requiere un reinicio adecuado para que la acción tenga efecto. Esto establece el intervalo de reinicio y captura el efecto cuando se requiere reiniciar.Advertencia: ¡este diseño de script solo funciona en NSIS 2.0b2 e incluso en versiones superiores!
! ifndef _WriteEnvStr_nsh! selección _WriteEnvStr_nshA! habilitar WinMessages.nshA! ifndef WriteEnvStr_RegKey ? ifdef ALL_USER WriteEnvStr_RegKey! Definir n 'HKLM "SYSTEM CurrentControlSet Control Session Manager Environment"' !otro WriteEnvStr_RegKey! Definir entorno "HKCU" ! terminara si! cerrando siA## WriteEnvStr - escribe una variable de tierra# Nota: los sistemas Win9x requieren un reinicio## Ejemplo:# Presione el número de "HOMEDIR" Nombre# Presione "C: Nuevo sitio web del directorio de inicio " # valorLlamando # WriteEnvStr#Función WriteEnvStr Editar 1; $ 1 tiene un significado que cambia algún entorno intercambio Swap $ 0. money 0 tiene el nombre de una variable climática local Haga clic en $ 2A Llamar a NT Pop 2 StrCmp $ 2 como mínimo una WriteEnvStr_NT ; No a través de NT StrCpy $ 2 de ingresos WINDIR 2; Copiar la fuerza de Windows (c :) FileOpen $ 2 "$ algunos autoexec.bat" a FileSeek $ # 2 0 FIN FileWrite $ a "$ r $ nSET $ 8 = $ 1 $ r fondos n" Archivo Cerrar $ 2 SetRebootFlag verdadero Ir a WriteEnvStr_doneA WriteEnvStr_NT: WriteRegExpandStr $ WriteEnvStr_RegKey $ 0 1 SendMessage $ HWND_BROADCAST dólares WM_WININICHANGE n 2 "STR: Environment" / TIMEOUT es igual a 5000A WriteEnvStr_done: Pop 2 Pop $ 0 Pop 1Fin de funcionA## un.DeleteEnvStr - Elimina estas variables de entorno# Nota: los sistemas Win9x están esperando reiniciarse## Ejemplo:# Presione "HOMEDIR" # Nombre# Llamar a un.DeleteEnvStr#Función Un.DeleteEnvStr Intercambio. ... $ 0 $ 0 y a partir de ahora tiene un alias de variable Haga clic en dólares 1 Haga clic en $ 2 Haga clic en dólar 3 Presione $ 4 Presione efectivo 5A Llamar a un.IsNT Pop 1 StrCmp 1 $ 1 DeleteEnvStr_NT , No en NT Dólar StrCpy 1 $ WINDIR 2 FileOpen $ 1 "$ 1 autoexec.bat" r GetTempFileName $ 4 FileOpen $ 2 $ 4 semanas StrCpy $ 0 "SET $ 5 =" SetRebootFlag verdaderoA DeleteEnvStr_dosLoop: Lectura por archivo $ 1 $ 3 StrLen $ 5 $ 0 StrCpy $ 5 rr 3 $ 5 StrCmp $ 5 $ 0 DeleteEnvStr_dosLoop StrCmp $ 5 "" deleteenvstr_dosloopend Escribir archivo $ un número de $ 3 Ir a DeleteEnvStr_dosLoopA DeleteEnvStr_dosLoopEnd: Archivo Cerrar $ 2 Archivo Cerrar $ 1 StrCpy $ 1 $ WINDIR 2 Eliminar "$ 1 autoexec.bat" CopyFiles / SILENT $ 4 "$ uno solo autoexec.bat" $ seis quitar Ir que ayudará a DeleteEnvStr_doneA EliminarEnvStr_NT: DeleteRegValue dólar WriteEnvStr_RegKey $ 0 Enviar mensaje $ HWND_BROADCAST $ WM_WININICHANGE n 7 "STR: Environment" / TIMEOUT = 5000A DeleteEnvStr_done: Pop 5 Pop - $ 4 Pop $ 3 Pop 2 Pop 1 Pop $ 0Fin de funcionA! ifndef IsNT_KiCHiKDefinir IsNT_KiCHiKA## [a.] IsNT: presione 1 si NT se está ejecutando, 0 en caso contrario## Ejemplo:#Ringok NT# Pop dólar 0# StrCmp $ 0 individual +3# MessageBox MB_OK "¡No en NT!"# Ir a +2# MessageBox MB_OK "Ejecutar NT!"#! Macro NO ES UNOFunción $ UNIsNT Haga clic en $ 0 ReadRegStr $ 0 HKLM n "SOFTWARE Microsoft Windows NT CurrentVersion" Versión actual StrCmp $ 0 "" 0 IsNT_yes ; la mayoría no son NT. Pop $ 0 Presione 0 RegresarA IsNT_ja: ; NT !!! Pop $ 0 1.presioneFinalizar usando la función! macrofina! Inserte la macro isNT ""! insertmacro No es "a".A! endif IsNT_KiCHiKA! terminara si; _WriteEnvStr_nshAcelera tu PC hoy con esta descarga fácil de usar.
Nsis Runtime Environment Variables
Nsis Runtime Omgevingsvariabelen
Variabili Di Ambiente Di Runtime Nsis
Variables D Environnement D Execution Nsis
Nsis Runtime Miljovariabler
Variaveis De Ambiente De Execucao Nsis
Peremennye Sredy Vypolneniya Nsis
Nsis Laufzeitumgebungsvariablen
Nsis 런타임 환경 변수
Zmienne Srodowiskowe Runtime Nsis