이 도구를 처음 사용하는 Inno Setup으로 설치 프로그램을 만들고 싶습니다.
내가하려고하는 것은 기존 소프트웨어의 기존 설치 관리자를보다 자세한 자체 제작 설치 관리자 (Setup.exe 내의 Setup.exe를 의미)로 묶는 것입니다.Inno Setup에서 설치가 끝날 때 32/64-bit 특정 레지스트리 키 쓰기
지금까지 조사한 후에 나에게 맞는 것은 설치 프로그램 (Inno Setup * .exe)에 포함 된 설치 프로그램 (실제 소프트웨어 설정)을 실행하라고 요청하는 것입니다.
왜 다른 설치 프로그램이 필요합니까? 왜냐하면 나는 그것에게 약간의 여분의 기능을주고 싶기 때문이다.
특정 사항 : 설치 마지막 단계에서 관련 비트 시스템 (32 비트/64 비트)에 맞는 레지스트리 키를 추가하고 싶습니다. 그리고 여기 제가 전문가의 도움을 구하는 곳입니다. 다음과 같이 (주요 관심사) 상세
내 문제는 다음과 같습니다
- 나는 이노 설정의
[Registry]
섹션을 사용하여 키를 추가 할 수 있었다. 그러나[Registry]
은 항상[Run]
전에 실행되는 것처럼 보입니다. 그러나 설치 전 (설치 자체가 생성하는 regedit-path에 추가됨)이 아닌 키가 필요하기 때문에 이전에 작동하지 않은 항목을 삭제했습니다 ([Registry]
). . 주 설치 후 reg-add를 수행하기 위해 두 절차 (AfterInstall
및CurStepChanged
/ssPostInstall
및DeinitializeSetup
)가 내 관심사에 맞게 잘 맞지 않는 것으로 나타났습니다. (생각해 보면AfterInstall
이 (?)) 설치가 이미 실패한 경우 (?!) - 레지스트리 키 (문자열)를 추가하기위한 파스칼 구문을 알지 못합니다. 기존 경로 아래에 추가 할 수 있습니다. 섹션에 관해서는
[Registry]
아래에 추가 할 수 있습니다. 이노 설치 기능과 관련하여 많은 연구를 했더라도 조금 잃어버린 느낌이 들었습니다. - 세 번째 문제는 레지스트리의 경로는 32 또는 64인지 여부에 따라 다릅니다. -bit 시스템. 그래서 실제로 비트 - 시스템 중 하나 또는 다른 경로/키를 추가하기 전에 (이미 비트 버전에 따라 프로그램 자체의 설치 경로를 생성하기 때문에) 추가 검사를해야하는데, 나는이 함수를 찾았습니다.
IsWin64
(부울) , 지금은 함수 (bit-version-query)와 프로 시저 (AfterInstall
)를 섞으려고 시도하는 것은 나에게 초보자로 잘못 들린다. 게다가 if-else-query를 만들려고했는데 컴파일러가 잘못하고 있다고 말했다.if IsWin64 then...
이 작동하지만 else를 추가해도 그렇지 않습니다.
그래서 이론에서 솔루션 대략 더를 제공 할 필요가 없습니다에 대한
procedure MyAfterInstall();
function IsWin64: Boolean;
if 64-bit Reg-Add HKLM\SOFTWARE\Wow6432Node\A
else Reg-Add HKLM\SOFTWARE\B
죄송합니다 ... 뭔가 같은 것입니다. 나는 보통 코딩하지 않는다. 그러나 나는이 함수는 것을 알고, 내가 DeinitializeSetup
이 지금까지 나를 위해 일 한 가지이기 때문이었다 사용하는 이유
[Code]
procedure DeinitializeSetup();
begin
RegWriteStringValue(
HKEY_LOCAL_MACHINE, 'SOFTWARE\Wow6432Node\A', 'ConnectionString ', 'Data Source=Test;');
end;
이유 :
관련된 경우에, 그것은 내가 지금까지 내 코드 섹션에있는 무엇 아무 것도 설치되기 전에 사용자가 설치 프로그램을 종료하더라도 호출됩니다. 이는 그리 좋지 않습니다.소프트웨어 설치 자체가 키를 추가 할 경로를 생성하기 때문에 설치 후이 작업을 실행합니다. 소프트웨어 설치가 실패하는 동안 키를 갖고 있지 않은 것은 ... 어쩌면 거기에 더 좋은 방법이있을 수도 있습니다.
많은 단어에 사과와 도움을 미리 감사드립니다.
가'대 등록-추가 오히려 HKLM \ SOFTWARE \ B' 또는'정말'HKLM \ SOFTWARE \ Wow6432Node \ A'를인가 Reg-Add HKLM \ SOFTWARE \ A'? 나는. 'Wow6432Node'의 유일한 차이점입니까 아니면 다른 실제 키 경로 끝입니까? –
@MartinPrikryl 당신이 맞습니다, 경로에 "Wow6432Node"가 유일한 차이점입니다. 나머지는 동일합니다. 추가하고자하는 데이터 레코드가 32 비트 및 64 비트 버전 모두 동일합니다. – Yauhun