2014-09-16 4 views
2

을 사용하여 파일로 : 파일 경로가 UserInfoPage 알려진 경우쓰기 직렬 내가 해결하려면 다음 Inno Setup으로 코드를 얻기 위해 노력하고 있어요 이노 설치

[Setup] 
UserInfoPage=yes 

[Code] 
function CheckSerial(Serial: String): Boolean; 
begin 
    Result := true; 
    SaveStringToFile('c:\Registration.txt', Serial, False); 
end; 

코드는 매우 간단하다. 그러나이 파일을 내 응용 프로그램 옆에 작성해야 할 때 매우 복잡해집니다. 어느 쪽 :

WizardDirValue(); 

ExpandConstant('{app}'); 

는 일을하지 않습니다. 너무 일찍 전화를 두 번째도 실행하지 않는 경우 첫 번째가 비어있는, 내가 얻을 :

Internal error: an attempt was made to expand the "app" constant before it was initialized.

어떻게 저장 응용 프로그램 옆에있는 필요가 파일에 Serial 값 (.exe 파일을 수행)?

답변

3

당신은 일련 번호를 얻기 위해 {userinfoserial} 일정을 확장 할 수있는 응용 프로그램 디렉토리를 선택한 후, 예를 들어 해고 일부 이벤트의 정보 페이지에 입력 된 사용자 :

[Setup] 
AppName=My Program 
AppVersion=1.5 
UserInfoPage=yes 
DefaultDirName={pf}\My Program 

[Code] 
function CheckSerial(Serial: String): Boolean; 
begin 
    Result := True; 
end; 

procedure CurStepChanged(CurStep: TSetupStep); 
begin 
    if CurStep = ssPostInstall then 
    begin 
    SaveStringToFile(ExpandConstant('{app}\Serial.txt'), 
     ExpandConstant('{userinfoserial}'), False); 
    end; 
end; 
+0

내가 personnally'AfterInstall 사용 : MyAfterInstall' 그러나 그것은 동등합니다. 빠른 응답을위한 thx. – malat

+0

* "파일 특정"동작에 대해'AfterInstall'을 사용하고 있습니다. * "setup wide"* 동작으로 더 느껴졌습니다. 그래서'CurStepChanged'를 사용했지만 맛은 문제입니다. 천만에요! – TLama

관련 문제