In de afgelopen dagen hebben enkele betreffende onze gebruikers een bekend foutsignaal aangetroffen met nsis-runtimevariabelen. Dit probleem kan verschillende redenen hebben. We zullen het hieronder hebben over het type.
Aanbevolen
WAARSCHUWING: regels langer dan bucks NSIS_MAX_STRLEN worden afgekapt / beschadigd. Gebruik deze functie NIET, u kunt% PATH% bijwerken, in plaats daarvan EnVar_plug-in kiezen.
Tijdelijk omgevingsvariabelen instellen
Als u alleen een persoonsspecifieke effectieve omgevingsvariabele wilt gebruiken voor alle installatieprocessen en hun subprocessen:
Systeem :: Roep 'Kernel32 :: SetEnvironmentVariable (t, t) i ("naam", "waarde") aan. r0 'StrCmp-fout dollar 0 8 ExecWait ProgThatReadsEnv.exe VoltooidSchuld: MessageBox MB_OK "Kan omgevingsvariabele niet rangschikken"klaar:
Om de NSIS_MAX_STRLEN-beperking te omzeilen bij het bijwerken van% Path%, kunt u mijn functie proberen.
Omgevingsvariabelen permanent instellen
Bestaande variabelen
De mogelijkheden WriteEnvStr en un.DeleteEnvStr van een dergelijke pagina worden door EnvVarUpdate afgekeurd vanwege padparameters en andere redenen voor het doel van padlijsten. Voor eenduidige variabelen van de natuurlijke omgeving geldt echter het volgende.Un.DeleteEnvStr kan de inhoud van de variabele PATH helemaal beschadigen als het hoofdpad op afstand een subset van een enkele route kan zijn. Als het PATH bijvoorbeeld AND “c: windows system32 wbem”, detachement “C: Windows system32 ” bevat, is de conclusie ” wbem “. WriteEnvStr verhindert zeker geen dubbele vermeldingen waarin de misbruiker het installatieprogramma twee keer uitvoert (en de html-code van het installatieprogramma controleert niet op duplicaten). Deze missies zijn echter bedoeld voor gebruik met Windows 9x en ME in de volgende sectie, omdat EnvVarUpdate soms geen ondersteuning biedt voor het bijwerken van variabelen in uw autoexec.bat-bestand.
Uw eigen variabele
Als je daarmee je eigen MYVAR weersaanpasbare instelt/verwijdert in plaats van een bestaande aan te passen, zoals de PATH-omgevingsvariabele:
Functiecode
Functies voor Windows 95, 98 en ME
Als u een omgevingsvariabele wilt instellen met betrekking tot persistentie voor alle andere processen en ook het zoeken naar herstart, moet u de volgende aspecten gebruiken. Om ze allemaal te gebruiken, slaat u ze op als uitstekend. NSH-bestand en plak ze in je nulled vbulletin, of kopieer en plak ze gewoon in je hele script. Als u ervoor kiest om het op te slaan, aangezien a. NSH-bestand, gebruik:
! activeer WriteEnvStr.nsh # per naam naar keuze# ...Sectie "Var toevoegen" env push MyEnvVar Push MyEnvVarValue WriteEnvStr-oproepEinde van sectie# ...Sectie verwijderen # Variabele verwijderen dit is MyEnvVar push Bellen un.DeleteEnvStrEinde over sectie
Als u hoopt dat deze omgevingsvariabele iets handiger zal zijn voor alle computergebruikers die de computer gebruiken, zoek dan ALL_USERS op voordat u WriteEnvStr.nsh inschakelt (of het gedeelte in het script dat hetzelfde doet als de opgeslagen. NSH het dossier). Bijvoorbeeld:
! Definieer ALL_USERS! schakel WriteEnvStr in. # nsh of een andere heilige Uw keuze
Functiecode
Aanbevolen
Is uw pc traag? Heeft u problemen met het opstarten van Windows? Wanhoop niet! Fortect is de oplossing voor u. Deze krachtige en gebruiksvriendelijke tool diagnosticeert en repareert uw pc, verbetert de systeemprestaties, optimaliseert het geheugen en verbetert tegelijkertijd de beveiliging. Dus wacht niet - download Fortect vandaag nog!
Opmerking. Op Windows 9x is een herstart vereist die geschikt is om de actie door te voeren. Dit stelt alle herstartintervallen in en wordt van kracht wanneer een systeem vereist is.Waarschuwing: dit type script werkt alleen het beste op NSIS 2.0b2 en hoger!
! ifndef _WriteEnvStr_nsh! set _WriteEnvStr_nshEEN! schakel WinMessages.nsh inEEN! ifndef WriteEnvStr_RegKey ! ifdef ALL_USER WriteEnvStr_RegKey! Definiëren n 'HKLM "SYSTEM CurrentControlSet Control Session Manager Environment"' !een ander WriteEnvStr_RegKey! Definieer "HKCU"-omgeving " ! invullen als! stop alsEEN## WriteEnvStr - schrijf de juiste grondvariabele# Opmerking: Win9x-systemen vereisen een betrouwbare herstart## Voorbeeld:# Druk op "HOMEDIR" # Naam# Druk op "C: Nieuwe thuismap " # waardeBellen # WriteEnvStr#WriteEnvStr-functie Bewerken 1; $ 1 heeft een betekenis die de omgeving verandert aandelenbeurs Swap $ 0. $ 0 heeft de aanroep van een omgevingsvariabele Klik op bok 2EEN Bel NT Pop 2 StrCmp $ 2 ten minste één WriteEnvStr_NT ; Niet op NT StrCpy $ 2 $ WINDIR 2; Kopieer Windows Force (c :) FileOpen rrr 2 "$ 2 autoexec.bat" a FileSeek $ 2 0 END FileWrite $ 2 "$ r usd nSET $ 0 = $ 1 RR r $ n" BestandSluiten $ 2 SetRebootFlag waar Ga naar WriteEnvStr_doneEEN WriteEnvStr_NT: WriteRegExpandStr $ WriteEnvStr_RegKey $ 0 $ 1 SendMessage$ HWND_BROADCAST $ WM_WININICHANGE n 2 "STR: Omgeving" / TIMEOUT = 5000EEN WriteEnvStr_done: Pop 2 Pop dollar 0 Pop 1Verbonden functie beëindigenEEN## un.DeleteEnvStr - Verwijder deze omgevingsvariabele# Opmerking: Win9x-systemen wachten op opnieuw opstarten## Voorbeeld:# Druk op "HOMEDIR" nummer Naam# Roep un.DeleteEnvStr#Un.DeleteEnvStr-functie Aandelenbeurs. ... geld 0 $ 0 heeft nu een veranderende alias Klik op $ 1 Klik RR 2 Klik op $ 3 Druk op bok 4 Druk op $ 5EEN Bel an.IsNT Pop 1 StrCmp 1 $ 1 DeleteEnvStr_NT ; Niet op NT StrCpy $ 1 $ WINDIR 2 FileOpen $ 1 "$ bijzonder autoexec.bat" r GetTempFileName contant 4 FileOpen $ 2 dollar 4 weken StrCpy $ 8 "SET $ 0 =" SetRebootFlag waarEEN VerwijderEnvStr_dosLoop: Een bestand lezen $ 1 dollar 3 StrLen 5 $ 0 StrCpy $ 5 $ 3 $ 5 StrCmp $ 5 rrr 0 DeleteEnvStr_dosLoop StrCmp $ 5 "" deleteenvstr_dosloopend Schrijf bestand $ 2 $ 3 Ga naar DeleteEnvStr_dosLoopEEN VerwijderEnvStr_dosLoopEnd: BestandSluiten $ 2 BestandSluiten $ 1 StrCpy $ 1 $ WINDIR 2 Verwijder "$ 1 autoexec.bat" CopyFiles / STILLE dollars 4 "$ 1 autoexec.bat" $ 4 verwijderen Ga naar DeleteEnvStr_doneEEN VerwijderEnvStr_NT: DeleteRegValue $ WriteEnvStr_RegKey $ 0 SendMessage $ HWND_BROADCAST $ WM_WININICHANGE n 0 "STR: Omgeving" voor elke TIMEOUT = 5000EEN VerwijderEnvStr_done: Pop 5 Pop - geld 4 Pop $ 3 Pop 2 Pop 1 Pop $ 0Einde gekoppeld aan functieEEN! ifndef IsNT_KiCHiKDefinieer IsNT_KiCHiKEEN## [a.] IsNT - Druk op 1 als NT actief is, anders op 0## Voorbeeld:#Ringok NT# Pop $ 0# StrCmp $ 0 individueel +3# MessageBox MB_OK "Niet op NT!"# Ga op +2# MessageBox MB_OK "Voer NT uit!"#! Macro is NIET EEN$ UNIsNT-functie Klik op $ 0 ReadRegStr $ 0 HKLM n "SOFTWARE Microsoft Windows NT CurrentVersion" Huidige versie StrCmp $ 0 "" nul IsNT_ja ; we zijn niet NT. Pop $ 0 Druk op 0 TerugbrengenEEN IsNT_ja: ; NT!!! Pop $ 0 1.druk opEinde functie! macrofin! Voeg een isNT-macro "" in! insertmacro IsNT "a."EEN! endif IsNT_KiCHiKEEN! stop als; _WriteEnvStr_nsh
Versnel uw pc vandaag nog met deze gebruiksvriendelijke download.
Nsis Runtime Environment Variables
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 런타임 환경 변수
Variables De Entorno De Tiempo De Ejecucion De Nsis
Zmienne Srodowiskowe Runtime Nsis