Inno Setup - [code] 내부의 기본 경로 정의 (Inno Setup - Defining a default path inside [code])


문제 설명

Inno Setup ‑ [code] 내부의 기본 경로 정의 (Inno Setup ‑ Defining a default path inside [code])

내 앱 업데이트가 DefaultDirName으로 이전에 저장된 설치 경로를 검색할 수 있도록 Windows 레지스트리를 읽으려고 합니다.

다음과 같은 함수를 호출해야 하는 곳을 읽었습니다.

DefaultDirName="{code:GetPath}"

문제는 함수가 이전 경로를 찾지 못할 경우를 대비하여 기본 경로를 정의해야 한다는 것입니다. 예를 들어, 'C:\MyPath'. 그래서 저는 이렇게 했습니다:

[Code]
function GetPath(Value: String): String;
var
  OrigPath: string;
begin
  Result := '{sd}\MyPath';
  if RegQueryStringValue(HKCU, 'Software\MyApp', 'PathExec', OrigPath) then
     Result := OrigPath;
end;

작동하지 않습니다. 설정을 실행할 때 대상 디렉터리 대화 상자에서 "C:\MyPath"가 아니라 문자 그대로 "C:\PathOfMySetup\{sd}\MyPath"가 표시됩니다.

시스템 드라이브에서 "MyPath"를 생성하려면 첫 번째 "Result := " 줄에 무엇을 써야 하나요?

감사합니다.


참조 솔루션

방법 1:

The constants in Pascal Script are not magically expanded. You have to expand them explicitly using the ExpandConstant function:

Result := ExpandConstant('{sd}\MyPath');

(by mehrlichMartin Prikryl)

참조 문서

  1. Inno Setup ‑ Defining a default path inside [code] (CC BY‑SA 2.5/3.0/4.0)

#pascalscript #function #inno-setup






관련 질문

Inno Setup의 WizardForm 페이지에서 레이블 텍스트 변경 (Changing label texts on WizardForm page in Inno Setup)

파스칼스크립트 디버깅 중에 양식 양식을 일시 중단할 수 있습니까? (Can a forms modality be suspended during pascalscript debugging?)

Inno Setup: .NET Framework 설치, 시스템 재부팅 후 설치 계속 (Inno Setup: Install .NET framework, reboot the system and continue installation)

Inno Setup - [code] 내부의 기본 경로 정의 (Inno Setup - Defining a default path inside [code])

파스칼스크립트에 DLL 함수 등록하기 (Registering DLL-Functions in Pascalscript)

HelpNDoc 파스칼 스크립트는 구조를 지원합니까? (Does HelpNDoc Pascal Script support structures?)

하위 설치 다운로드 및 실행 - Inno Download Plugin 다운로드 중에 진행률 표시줄이 이동하지 않음 (Download and run sub install - Inno Download Plugin progress bar does not move during download)

TBitmapImage는 Inno Setup 6에서 크기 조정된 디스플레이의 크기보다 크게 렌더링됩니다. (TBitmapImage is rendered larger than its size on scaled display in Inno Setup 6)

Inno Setup에서 필요할 때 시작 화면을 표시하지 않으려면 어떻게 해야 합니까? (How can I prevent showing the splash screen when I need it in Inno Setup?)

Inno Setup을 사용하여 현재 날짜를 레지스트리에 바이너리 형식으로 저장 (Storing the current date to the registry in binary format with Inno Setup)

Inno Setup 설치 프로그램 이전의 시작 화면에 이미지가 표시되지 않음 (Image on a splash screen before Inno Setup installer does not display)

Inno Setup 단어 완성이 전혀 작동하지 않습니다 (Inno Setup word completion doesn't work at all)







코멘트