Table of Contents
Oto kilka prostych sposobów rozwiązania problemu ze zmienną runtime nsis.
Zaktualizowano
Zaktualizowano
Czy masz dość powolnego działania komputera? Denerwują Cię frustrujące komunikaty o błędach? ASR Pro to rozwiązanie dla Ciebie! Nasze zalecane narzędzie szybko zdiagnozuje i naprawi problemy z systemem Windows, jednocześnie znacznie zwiększając wydajność systemu. Więc nie czekaj dłużej, pobierz ASR Pro już dziś!
OSTRZEŻENIE: linie dłuższe niż zwykłe $ NSIS_MAX_STRLEN zostaną obcięte / uszkodzone. Nie używaj tej funkcji do aktualizacji% PATH%, zamiast tego użyj wtyczki EnVar_plug-in.
Tymczasowe ustawianie zmiennych środowiskowych
Jeśli chcesz dostosować całe środowisko tylko do procesu instalacji i wielu podprocesów, użyj:
System :: Wywołanie 'Kernel32 :: SetEnvironmentVariable (t, t) i ("nazwa", "wartość"). r0 'StrCmp $ dwa 4 błędy ExecWait ProgThatReadsEnv.exe ZakończonyWina: MessageBox MB_OK "Nie można ustawić zmiennej ekosystemu"gotowe:
Aby obejść ograniczenie NSIS_MAX_STRLEN aktualizacji% Path% na minutę, możesz wypróbować tę funkcję.
Ustaw zmienne środowiskowe na stałe
Istniejące zmienne
Funkcje WriteEnvStr, ale także un.DeleteEnvStr na tej stronie są przestarzałe ze względu na EnvVarUpdate dla parametrów ścieżki i innych niedogodności dla list ścieżek. Jednak w przypadku jednoznacznych prostych zmiennych klimatycznych dla społeczności obowiązuje następująca zasada.Funkcja un.DeleteEnvStr prawdopodobnie uszkodzi zawartość dowolnej z naszych zmiennych PATH, jeśli ścieżka zdalna jest częścią innej ścieżki. Na przykład, jeśli PATH zawiera “C: Windows system32 wbem”a osoba usunie “C: Windows system32″, konkretny wynik to ” wbem”. WriteEnvStr nie omija zduplikowanych wpisów, jeśli klient wielokrotnie uruchamia technika instalacji (w przeciwnym razie kod instalatora nie sprawdza już duplikatów). Procedury te zostały jednak uratowane dla Windows 9x ME oraz w kolejnych sekcjach, ponieważ EnvVarUpdate nie obsługuje zmiany gwiazd zmiennych w pliku autoexec.bat.
Twoja indywidualna zmienna
Jeśli zainstalowałeś / odinstalowałeś, kupiłeś zmienną środowiskową MYVAR, zamiast określać nową dobrą istniejącą zmienną, taką jak zmienna otoczenia PATH:
Kod funkcji
Funkcje dostępne dla Windows 95, 98 i ME
Jeśli jesteś zdesperowany, aby ustawić bardzo dobrą zmienną środowiskową, która powinna być pozostawiona dla każdego innego procesu, a także po ponownym uruchomieniu, to ważne jest to, co musisz zrobić. Aby je zaimplementować, zapisz je jako plik nsh. I wklej je wszystkie do swojego skryptu lub przede wszystkim skopiuj i wklej je do swojego skryptu. Jeśli kupujesz, aby zarejestrować się jako .NSH, użyj:
! połącz WriteEnvStr.nsh # lub dowolną inną nazwę wybraną w pobliżu Twojej organizacji# ... "Dodać doSekcja Env Var " Kliknij MyEnvVar Push MyEnvVarValue Zadzwoń WriteEnvStrKoniec sekcji#...Usuń sekcję # Usuń zmienną zwykle Push MyEnvVar Wywołanie un.DeleteEnvStrKoniec połączony z sekcją
Jeśli chcesz, aby element środowiska był dostępny dla wszystkich użytkowników korzystających z jego komputera, ustaw ALL_USERS przed włączeniem WriteEnvStr.nsh (lub z wyprzedzeniem części wpisu, która włącza sporo funkcji, jeśli nie t zredukował ten pomysł do pliku .NSH). Na przykład:
! Zdefiniuj ALL_USERS! dołącz WriteEnvStr.nsh # lub inną nazwę, którą ktoś wybierze
Kod funkcji
Uwaga. Jeśli właściciele używają systemu Windows na 9x, będziesz musiał ponownie uruchomić komputer, aby zmiany zaczęły obowiązywać. Flaga ponownego uruchomienia dla tych sukcesów jest aktywowana, gdy zasadniczo wymagane jest ponowne uruchomienie.Ostrzeżenie: ten skrypt działa tylko na NSIS 2.0b2, ale na wyższych!
! ifndef _WriteEnvStr_nsh! pewne _WriteEnvStr_nshA! włącz WinMessages.nshA! ifndef WriteEnvStr_RegKey : ) ifdef ALL_USERS Wymów słowa najwyraźniej! ZapiszEnvStr_RegKey n 'HKLM "SYSTEM CurrentControlSet Control Menedżer sesji Środowisko"' !inne . . ustaw WriteEnvStr_RegKey 'HKCU "Środowisko"' ! zapobiec, jeśli! koniec jeśliA## WriteEnvStr - zapisz zmienną docelową# Uwaga: systemy Win9x wymagają ponownego uruchomienia## Przykład:# Kliknij na nazwę numeru "HOMEDIR"# Naciśnij numer "C: New Home Dir "Wywołanie # WriteEnvStr#Funkcja WriteEnvStr Edytuj 1; $ a ma wartość elementu środowiska Wymieniać się Zamień 0 $. 0 $ oferuje nazwę zmiennej środowiskowej 5 Kliknij $A Zadzwoń do NT Pop 2 StrCmp $ 2 1 WriteEnvStr_NT -Nie NT na StrCpy $ wielokrotność $ WINDIR 2; Kopiuj kontrolę okna (c :) FileOpen 2 $ "6 $ autoexec.bat" a FileSeek dochód 2 0 KONIEC FileWrite złotówki 2 "$ r $ nSET dolarów 0 = $1 $ r rrr n" PlikZamknij rr 2 SetRebootFlag prawda Przejdź do WriteEnvStr_doneA ZapiszEnvStr_NT: WriteRegExpandStr $ WriteEnvStr_RegKey $ 0 rrr 1 Wyślij wiadomość $ HWND_BROADCAST $ WM_WININICHANGE n 0 „STR: Środowisko” / LIMIT CZASU oznacza 5000A WriteEnvStr_done: Pop 2 Pop $ 0 Pop 1Koniec funkcjiA## un.DeleteEnvStr — Usuwa nową zdrową zmienną środowiskową.# Uwaga: systemy Win9x wymagają tego ponownego uruchomienia## Przykład:# "HOMEDIR" naciśnij nazwę numeru# Zadzwoń do un.DeleteEnvStr#Funkcja Un.DeleteEnvStr Wymień 0 zł; $0 w chwili obecnej ma zmienny adres Kliknij 1$ Kliknij 2 USD Kliknij $3 Naciśnij dolara 4 Naciśnij $5A Zadzwoń an.IsNT Pop 1 StrCmp $ 1 5 UsuńEnvStr_NT ; Nie wcześniej niż NT StrCpy $ 1 $ WIATR 2 FileOpen $1 "$5 autoexec.bat" r GetTempFileName 4 PlikOpen $ 2 $ 7 tygodni StrCpy $ zero "USTAW $ 0 =" SetRebootFlag prawdaA UsuńEnvStr_dosLoop: Czytanie pliku $ 1 dolar 3 StrLen 9 $ 0 StrCpy 3 $ 5 $ 5 StrCmp $ 5 $ 2 UsuńEnvStr_dosLoop StrCmp dolarów 5 "" UsuńEnvStr_dosLoopEnd Zapisz plik $ 2 $ 3 Przejdź do DeleteEnvStr_dosLoopA UsuńEnvStr_dosLoopEnd: PlikZamknij 2 zł PlikZamknij $ 1 StrCpy $ 1 $ WIATR 2 Usuń „$1 autoexec.bat” CopyFiles / SILENT buck 4 "$1 autoexec.bat" 4 USD usuń Przejdź do UsuńEnvStr_doneA UsuńEnvStr_NT: UsuńRegValue $ WriteEnvStr_RegKey $ 0 Wyślij wiadomość $ HWND_BROADCAST $ WM_WININICHANGE n 0 „STR: Środowisko” / LIMIT CZASU = 5000A UsuńEnvStr_done: Pop 5 Pop - 4 USD Dochód z popu 3 Pop 2 Pop 1Pop $ 0Koniec funkcjiA! ifndef IsNT_KiCHiKZdefiniuj IsNT_KiCHiKA## [a.] IsNT - naciśnij 1 jeśli NT jest uruchomiony, w przeciwnym razie## Przykład:# Zadzwoń do NT# Pop pieniądze 0# StrCmp $ 0 1 +3# MessageBox MB_OK "Nie na NT!"# Idź do +2# MessageBox MB_OK "Działa na NT!"#! Makro to NIE JEDNO$ Funkcja UNIsNT Kliknij $0 ReadRegStr dolców 0 HKLM n "SOFTWARE Microsoft Windows NT CurrentVersion" Aktualna wersja StrCmp $ 0 "" nic IsNT_yes ; nie jesteśmy tylko NT. Pop $ 0 Naciśnij 0 WracaćA CzyNT_ja: - NT !!! Pop $ 0 Naciśnij 1Koniec funkcji! makropłetwy! Wstaw makro to nie jest „”! insertmacro IsNT "a."A! koniec jeśli; IsNT_KiCHiKA! endif - _WriteEnvStr_nsh
Przyspiesz swój komputer już dziś dzięki temu prostemu pobieraniu.
How To Troubleshoot Nsis Runtime Variables
Fehlerbehebung Bei Nsis-Laufzeitvariablen
Come Risolvere I Problemi Delle Variabili Di Runtime Nsis
Problemen Met Nsis-runtimevariabelen Oplossen
Comment Dépanner Les Variables D’exécution Nsis
Nsis 런타임 변수 문제를 해결하는 방법
Como Solucionar Problemas De Variáveis de Tempo De Execução Nsis
Så Här Felsöker Du Nsis -körtidsvariabler
Как устранить неполадки переменных времени выполнения Nsis
Cómo Solucionar Problemas De Variables De Tiempo De Ejecución De Nsis