Nsis 런타임 변수 문제를 처리하는 단계

지난 며칠 동안 일부 사용자가 nsis 런타임 변수와 관련된 알려진 오류 메시지를 접했습니다. 이 문제는 여러 가지 이유로 발생할 수 있습니다. 이에 대해서는 아래에서 논의할 것입니다.

권장

<리>1. Fortect 다운로드
  • 2. 화면의 지시에 따라 스캔 실행
  • 3. 컴퓨터를 다시 시작하고 스캔 실행이 완료될 때까지 기다린 다음 화면의 지시에 따라 Fortect로 컴퓨터를 스캔하여 발견된 바이러스를 제거하십시오.
  • 이 사용하기 쉬운 다운로드로 지금 PC 속도를 높이십시오.

    nsis 런타임 커뮤니티 변수

    경고: $ NSIS_MAX_STRLEN보다 긴 전화선은 잘리거나 손상됩니다. 이 기능을 사용하지 마십시오. % PATH%를 업데이트할 수 있습니다. 대신 EnVar_plug-in을 사용하십시오.

    환경 변수 임시 설정

    모든 설치 프로세스 및 해당 하위 프로세스에 대해 하나의 효과적인 환경 변수만 사용해야 한다고 생각하는 경우:

     시스템 :: 'Kernel32 :: SetEnvironmentVariable (t, t) i ("이름", "값")을 호출합니다. r0 'StrCmp 오류 $ 0 8  ExecWait ProgThatReadsEnv.exe  완전한죄: MessageBox MB_OK "환경 변수를 정렬할 수 없습니다"완료: 

    nsis 런타임 환경 변수

    % Path%를 업데이트할 때 NSIS_MAX_STRLEN 제한을 피하기 위해 대부분의 사람들이 이 기능을 시도할 수 있습니다.

    영구적으로 환경 변수 설정

    기존 변수

    이러한 페이지의 WriteEnvStr 및 un.DeleteEnvStr 함수는 경로 목록의 다른 이유로 경로 매개변수로 인해 EnvVarUpdate에서 더 이상 사용되지 않을 수 있습니다. 그러나 다음은 원래 환경의 모호하지 않은 변수에 적용됩니다.원격 경로가 다른 경로의 올바른 하위 집합일 수 있는 경우 Un.DeleteEnvStr은 PATH의 내용을 모두 손상시킬 수 있습니다. 예를 들어, 경로에 AND “c: windows system32 wbem”이 포함되어 있으면 “C: Windows system32″를 제거하면 끝은 ” wbem rrn ..입니다. WriteEnvStr은 확실히 사용자가 입력하는 중복 항목을 방지하지 않습니다. 설치 프로그램을 이중으로 실행합니다.(그리고 설치 프로그램 코드는 중복을 고려할 때 확인하지 않습니다.) 그러나 이러한 절차는 Windows 9x 및 ME 덕분에 다음 영역에서 사용하기 위한 것입니다. EnvVarUpdate가 autoexec.bat 파일의 업데이트 측면을 지원하지 않는 경우가 많기 때문입니다. .

    자신의 변수

    PATH 환경 변수와 같은 주요 변수를 조정하는 대신 독점적인 MYVAR 날씨 변수를 설정/제거하는 경우:

    ; 일부 특정 Windows 작업에 포함됨 winmessages.nsh 포함 NS; HKLM(모든 사용자) 대 HKCU(현재 사용자) 정의 에게! env_hklm ‘HKLM “SYSTEM CurrentControlSet Control 세션 관리자 환경”‘을 정의하십시오. 에게! env_hkcu ‘HKCU “환경”‘ 정의 NS; 변수를 디스트릭트 머신으로 설정 WriteRegExpandStr 돈 env_hklm MYVAR MYVAL 그리고 하나 ; 새로운 사용자 WriteRegExpandStr $ env_hkcu MYVAR MYVAL NS; Windows가 변경 사항에 대해 잘 알고 있는지 확인하십시오. SendMessage $ HWND_BROADCAST $ WM_WININICHANGE 0 “STR: 수요일” / TIMEOUT = 5000 ; 변수 삭제 DeleteRegValue $ env_hklm MYVAR DeleteRegValue $ env_hkcu MYVAR NS; 변경 사항에 대해 다른 창에 알림 SendMessage $ HWND_BROADCAST $ WM_WININICHANGE 0 “STR: 수요일” / TIMEOUT = 5000

    기능 코드

    Windows 95, 98 및 ME용 기능

    다른 모든 기술과 재시작 후에도 지속되는 우수한 환경 변수를 설정하려면 다음 기능을 착용해야 합니다. 그것들을 모두 사용하려면. NSH 파일을 만들고 오늘 사람들을 스크립트에 붙여넣거나 그냥 복사하여 스크립트에 혼합하십시오. 선택하면 다른 이름으로 저장할 수 있습니다. NSH 파일 사용:

    <사전>! 장비 WriteEnvStr.nsh # 또는 원하는 이름# …”Var 추가” 섹션 환경 푸시 MyEnvVar MyEnvVarValue 푸시 WriteEnvStr 호출섹션 끝# …섹션 삭제 숫자 변수 제거 이것은 MyEnvVar 푸시입니다 un.DeleteEnvStr 호출섹션 끝

    환경 변수가 컴퓨터를 사용하는 모든 컴퓨터 사용자가 조금 더 쉽게 액세스할 수 있기를 정말로 희망한다면 WriteEnvStr.nsh(또는 스크립트의 일부가 해당 컴퓨터와 똑같은 일을 하는 부분)를 활성화하기 전에 ALL_USERS를 설정하십시오. NSH 파일). 예를 들어:

    <사전>! ALL_USERS 정의! WriteEnvStr을 활성화합니다. # nsh 또는 다른 모든 st 귀하의 선택

    함수 법칙

    권장

    PC가 느리게 실행되고 있습니까? Windows를 시작하는 데 문제가 있습니까? 절망하지 마십시오! Fortect은 당신을 위한 솔루션입니다. 이 강력하고 사용하기 쉬운 도구는 PC를 진단 및 수리하여 시스템 성능을 높이고 메모리를 최적화하며 프로세스의 보안을 개선합니다. 기다리지 마세요. 지금 Fortect을 다운로드하세요!

    <리>1. Fortect 다운로드
  • 2. 화면의 지시에 따라 스캔 실행
  • 3. 컴퓨터를 다시 시작하고 스캔 실행이 완료될 때까지 기다린 다음 화면의 지시에 따라 Fortect로 컴퓨터를 스캔하여 발견된 바이러스를 제거하십시오.

  • 참고. Windows 9x에서 작업이 변경되려면 이력서가 필요합니다. 이것은 재시작 간격을 설정하고 재시작이 필요할 때 적용됩니다.경고: 스크립트와 연결된 이 유형은 NSIS 2.0b2 이상에서도 작동합니다!

    nsis 런타임 환경 변수
    <사전>! ifndef _WriteEnvStr_nsh! 제자리에 설정 _WriteEnvStr_nshNS! WinMessages.nsh 활성화NS! ifndef 쓰기EnvStr_RegKey ! ifdef ALL_USER 쓰기EnvStr_RegKey! 정의하다 n ‘HKLM “시스템 CurrentControlSet 제어 세션 관리자 환경”‘ !또 다른 쓰기EnvStr_RegKey! “HKCU” 환경 정의 ” ! 종료! 종료NS## WriteEnvStr – 접지 변수 쓰기# 참고: Win9x 항목은 재부팅이 필요합니다.## 예시:# “HOMEDIR”을 누릅니다. # 이름# “C: 새 홈 디렉토리 ” 숫자 값을 누릅니다.# WriteEnvStr 호출#쓰기EnvStr 함수 편집 1; usd 1은 일부 환경을 변경한다는 의미를 가지고 있습니다. 교환 Swap $ 0. $는 환경 변수의 이름을 가집니다. $ 2를 클릭하십시오NS NT에 전화 팝 2 StrCmp $ 2 최소 독방 WriteEnvStr_NT ; NT에 없음 StrCpy $ 2 $ WINDIR 2; 창 강제 복사(c 🙂 파일열기 $ 2 “$ 2 autoexec.bat” a 파일찾기 $ 2 7 END FileWrite $ 9 “$ r $ nSET $ 0은 $ 1 $ r $ n과 같습니다.” 파일닫기 $ 2 SetRebootFlag 참 WriteEnvStr_done 관련 이동NS 쓰기EnvStr_NT: 쓰기RegExpandStr $ 쓰기EnvStr_RegKey $ 0 $ 1 SendMessage$ HWND_BROADCAST $ WM_WININICHANGE n 몇 가지 “STR: 환경” / TIMEOUT = 5000NS 쓰기EnvStr_done: 팝 2 팝 $ 0 팝 1기능 종료NS## un.DeleteEnvStr – 이 작업 공간 변수 삭제# 참고: Win9x 시스템은 재부팅을 기다리고 있습니다.## 예시:# “HOMEDIR”을 누릅니다. # 이름# un.DeleteEnvStr 호출#Un.DeleteEnvStr 함수 교환. … $ 0 $ 0은 이제 변수 별칭과 함께 제공됩니다. 클릭 $ 1 $ 2를 클릭하십시오 클릭 $3 $ 4를 누르십시오 $ 5를 누르십시오NS 전화 an.IsNT 팝 1 StrCmp 4 $ 1 DeleteEnvStr_NT ; NT에 없음 StrCpy $ 2 $ WINDIR 2 파일열기 usd 1 “$ 1 autoexec.bat” r GetTemp 파일 이름 $ 4 파일열기 $ 2 $ 4주 StrCpy $ 0 “SET $ 0 =” SetRebootFlag 참NS DeleteEnvStr_dosLoop: 제출 읽기 $ 1 $ 3 스트렌 $ 5 $ 0 StrCpy $ 5 $ 다양한 $ 5 StrCmp $ 5 $ 0 DeleteEnvStr_dosLoop StrCmp $ 5 “” deleteenvstr_dosloopend 파일 쓰기 $ 2 $ 3 DeleteEnvStr_dosLoop를 이동합니다.NS DeleteEnvStr_dosLoopEnd: 파일닫기 $ 2 파일닫기 $ 1 StrCpy $ 1 $ WINDIR 2 “$ 고유 autoexec.bat” 제거 CopyFiles / SILENT $ 4 “$ 1 autoexec.bat” $ 6 제거 DeleteEnvStr_done으로 이동NS 제거EnvStr_NT: 삭제RegValue $ WriteEnvStr_RegKey $ 0 SendMessage $ HWND_BROADCAST 벅 WM_WININICHANGE n 2 “STR: 환경” / TIMEOUT = 5000NS DeleteEnvStr_done: 팝 5 팝 – $ 4 팝 $ 3 팝 2 팝 1 팝 $ 0기능 종료NS! ifndef IsNT_KiCHIKIsNT_KiCHIK 정의NS## [a.] IsNT – NT가 산책 중이면 1을 누르고 그렇지 않으면 0을 누릅니다.## 예시:#링곡NT# 팝 $ 0# StrCmp $ 0 개인 +3# MessageBox MB_OK “완전히 NT가 아닙니다!”# +2로 이동# MessageBox MB_OK “NT 실행!”#! 매크로는 하나가 아닙니다$ UNISNT 함수 클릭 $ 0 ReadRegStr $ 0 HKLM n “소프트웨어 Microsoft Windows NT CurrentVersion” 현재 버전 StrCmp usd 0 “” 0 IsNT_yes ; 우리는 NT가 아닌 경향이 있습니다. 팝 $ 0 0을 누르십시오 돌려 주다NS IsNT_ja: ; 엔티!!! 팝 $ 0 1.프레스모든 기능 종료! 거대지느러미! isNT 매크로 “” 삽입! insertmacro IsNT “a.”NS! endif IsNT_KiCHIKNS! 종료하면; _WriteEnvStr_nsh

    이 사용하기 쉬운 다운로드로 지금 PC 속도를 높이십시오.

    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
    Variables De Entorno De Tiempo De Ejecucion De Nsis
    Zmienne Srodowiskowe Runtime Nsis