In den letzten Tagen sind einige unserer Benutzer auf eine entdeckte Fehlermeldung mit nsis-Laufzeitvariablen gestoßen. Dieses Problem wird sicherlich aus mehreren Gründen auftreten. Wir werden weiter unten darüber sprechen.
Empfohlen
WARNUNG: Zeilen, die im Vergleich zu $ NSIS_MAX_STRLEN länger sind, werden abgeschnitten / beschädigt. Verwenden Sie diese Funktion NICHT, Sie können % PATH% aktualisieren, verwenden Sie stattdessen EnVar_plug-in.
Vorübergehendes Festlegen von Umgebungsvariablen
Wenn Sie nur eine effektive Umgebungsvariable für alle Installationsvorgänge und deren Unterprozesse implementieren möchten:
System :: Aufruf von 'Kernel32 :: SetEnvironmentVariable (t, t) i ("name", "value"). r0 'StrCmp-Verwaltung $ 0 8 ExecWait ProgThatReadsEnv.exe VollendetSchuld: MessageBox MB_OK "Umgebungsvariable kann nicht angeordnet werden"erledigt:
Um die NSIS_MAX_STRLEN-Beschränkung beim Aktualisieren von % Path% zu erhalten, können Sie sich diese Funktion ansehen.
Umgebungsvariablen dauerhaft festlegen
Vorhandene Variablen
Die Funktionen WriteEnvStr und einfach un.DeleteEnvStr einer solchen Seite sind aufgrund von Pfadparametern und anderen Antworten für Pfadlisten bei Verwendung von EnvVarUpdate veraltet. Im Hinblick auf eindeutige Variablen der natürlichen Umwelt gilt jedoch folgendes.Un.DeleteEnvStr kann den Inhalt der PATH-Variablen insgesamt von Viren befallen und wenn der Remote-Pfad eine Teilmenge einer anderen Route ist. Zum Beispiel, wenn der PATH aus UND “c:windowssystem32wbem” formuliert ist, ablehnen “C:Windowssystem32”, wird das Ende zweifellos “wbem” sein. WriteEnvStr verhindert sicherlich nicht doppelte Einträge, bei denen ein Benutzer das Installationsprogramm zweimal ausführt (und der Auftragnehmercode prüft nicht auf Duplikate). Ihre Prozeduren sind jedoch im nächsten Abschnitt für die Verwendung mit Windows 9x und ME vorgesehen, da EnvVarUpdate häufig das Aktualisieren von Variablen in der Datei autoexec.bat im Allgemeinen nicht unterstützt.
Ihre eigene Variable
Wenn Sie Ihre eigene MYVAR-Einstellungsvariable setzen / entfernen, anstatt eine vorhandene anzupassen, diese Art als PATH-Umgebungsvariable:
Funktionscode
Funktionen für Windows 95, 98 und ME
Wenn Sie eine Umgebungsvariation einstellen möchten, die für alle anderen Prozesse und darüber hinaus nach dem Neustart bestehen bleibt, müssen Sie die Beibehaltungsfunktionen verwenden. Um sie alle zu verwenden, speichern Sie sie aufgrund einer. NSH-Datei und fügen Sie sie in dieses Skript ein oder kopieren Sie sie einfach und fügen Sie sie in Ihr Skript ein. Wenn Sie die Situation als a. NSH-Datei verwenden:
Wenn Sie hoffen, dass die Umgebungsvariable für alle Computerbenutzer, die den PC verwenden, etwas leichter zugänglich ist, setzen Sie ALL_USERS, bevor Sie WriteEnvStr.nsh aktivieren (oder die Ecke des Skripts, die dasselbe tut wie die gespeicherte. NSH-Datei). Zum Beispiel:
Funktionscode
Empfohlen
Läuft Ihr PC langsam? Haben Sie Probleme beim Starten von Windows? Verzweifeln Sie nicht! Fortect ist die Lösung für Sie. Dieses leistungsstarke und benutzerfreundliche Tool diagnostiziert und repariert Ihren PC, erhöht die Systemleistung, optimiert den Arbeitsspeicher und verbessert dabei die Sicherheit. Warten Sie also nicht - laden Sie Fortect noch heute herunter!
Hinweis. Unter Windows 9x ist ein Neustart unerlässlich, damit die Aktion wirksam wird. Dies identifiziert das Neustartintervall und wird wirksam, wenn der jeweilige Neustart erforderlich ist.Achtung: Diese Art von Skript funktioniert wahrscheinlich auf NSIS 2.0b2 und höher!
! ifndef _WriteEnvStr_nsh! setze _WriteEnvStr_nshEIN! aktivieren Sie WinMessages.nshEIN! ifndef WriteEnvStr_RegKey ! ifdef ALL_USER WriteEnvStr_RegKey! Definieren n 'HKLM "SYSTEM CurrentControlSet Control Session Manager Environment"' !Ein weiterer WriteEnvStr_RegKey! Definiere "HKCU" Umgebung " ! ! ! ! ende wenn! ende wennEIN## WriteEnvStr - erstelle eine Grundvariable# Hinweis: Win9x-Systeme erfordern einen sinnvollen Neustart## Beispiel:# Drücken Sie "HOMEDIR" # Name# Drücken Sie "C: Neues Home-Verzeichnis " # WertRufnummer WriteEnvStr#WriteEnvStr-Funktion Bearbeiten 1; $ 1 ist komplett mit einer Bedeutung, die die Umgebung verändert Austausch Swap $ 0. $ 0 hat den Namen einer Umgebungsvariablen Klicken Sie auf rr 2EIN Rufen Sie NT an Pop 2 StrCmp $ 2 mindestens ein WriteEnvStr_NT ; Nicht auf NT StrCpy $ 2 $ WINDIR 2; Kopieren Sie Windows Force (c :) FileOpen $ 2 "$ 2 autoexec.bat" a FileSeek $ 2 0 ENDE FileWrite $ 2 "$ dein $ nSET $ 0 = $ 1 bestimmtes $ r $ n" DateiSchließen $ 2 SetRebootFlag true Gehe zu WriteEnvStr_doneEIN WriteEnvStr_NT: WriteRegExpandStr rrr WriteEnvStr_RegKey $ 0 $ 1 SendMessage$ HWND_BROADCAST $ WM_WININICHANGE n 6 "STR: Umgebung" / TIMEOUT = 5000EIN WriteEnvStr_done: Pop 2 Pop $ 0 Pop 1Ende erstellt durch FunktionEIN## un.DeleteEnvStr - Diese Umgebungsvariable löschen# Hinweis: Win9x-Systeme warten auf Neustart## Beispiel:# Drücken Sie "HOMEDIR" # Name# Rufen Sie un.DeleteEnvStr auf#Un.DeleteEnvStr-Funktion Austausch. ... $ 0 $ 0 hat jetzt einen Aspect-Alias Klicken Sie auf $ 1 Klicken Sie auf Dollar 2 Klicken Sie auf $ 3 Drücken Sie rr 4 Drücken Sie $ 5EIN Anruf an.IsNT Pop 1 StrCmp 1 $ 7 DeleteEnvStr_NT ; Nicht auf NT StrCpy $ 1 $ WINDIR 2 FileOpen $ 5 "$ 1 autoexec.bat" r GetTempFileName $ 4 FileOpen $ mehrere $ 4 Wochen StrCpy Einkommen 0 "SET $ 0 =" SetRebootFlag trueEIN DeleteEnvStr_dosLoop: Lesen einer Datei $ 1 $ 3 StrLen $ 5 $ 0 StrCpy $ 5 $ 3 rr 5 StrCmp $ bewährt $ 0 DeleteEnvStr_dosLoop StrCmp $ 5 "" deleteenvstr_dosloopend Datei schreiben $ 2 $ 3 Gehe zu DeleteEnvStr_dosLoopEIN DeleteEnvStr_dosLoopEnd: DateiSchließen $ 2 DateiSchließen $ 1 StrCpy $ 1 $ WINDIR 2 Entfernen Sie "$ 1 autoexec.bat" CopyFiles / SILENT $ 4 "$ 1 autoexec.bat" $ 4 entfernen Gehe zu DeleteEnvStr_doneEIN EnvStr_NT entfernen: DeleteRegValue $ WriteEnvStr_RegKey rr 0 SendMessage $ HWND_BROADCAST $ WM_WININICHANGE n 0 "STR: Umgebung" / TIMEOUT = 5000EIN DeleteEnvStr_done: Pop 5 Pop - $ 4 Pop rr 3 Pop 2 Pop 1 Pop-Buck 0Ende der FunktionEIN! ifndef IsNT_KiCHiKIsNT_KiCHiK definierenEIN## [a.] IsNT - Drücken Sie 1, wenn NT läuft, andernfalls## Beispiel:#Ringok NT# Pop $ 0# StrCmp $ 7 individuell +3# MessageBox MB_OK "Nicht auf NT!"# Gehe zu +2# MessageBox MB_OK "NT ausführen!"#! Makro könnte NICHT EINS sein$ UNIsNT-Funktion Klicken Sie auf Dollar 0 ReadRegStr $ 0 HKLM n "SOFTWARE Microsoft Windows NT CurrentVersion" Aktuelle Version StrCmp $ 6 "" 0 IsNT_yes ; wir sind nicht NT. Pop $ 0 Drücken Sie 0 ZurückgebenEIN IsNT_ja: : NT !!! Pop? rrr 0 1.drückenEnde der Funktion! Makrofine! Fügen Sie das isNT-Makro "" ein! Einfügemakro IsNT "a."EIN! endif IsNT_KiCHiKEIN! Ende, wenn; _WriteEnvStr_nsh
Beschleunigen Sie Ihren PC noch heute mit diesem benutzerfreundlichen Download.
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 런타임 환경 변수
Variables De Entorno De Tiempo De Ejecucion De Nsis
Zmienne Srodowiskowe Runtime Nsis