Я хотел бы сохранить файл WAR в xampp\tomcat\webapps
, используя функциональность ReadReg
Inno Setup, чтобы найти Install_Dir
для XAMPP. Этот вопрос похож на Inno Setup: считывание исходного пути из реестра во время компиляции, но я думаю, что ответ, который мне нужен, изменчив. Вот что у меня есть:
Source: "D:\Content.war"; \
DestDir: "{#ReadReg(HKLM, "SOFTWARE\xampp", "Install_Dir", "DefaultDirName")}\tomcat\webapps"; \
Flags: ignoreversion
Но он не сохраняет файл WAR в папку XAMPP целевого компьютера. Пожалуйста, дайте мне знать, как это должно быть правильно структурировано/закодировано.
Используйте скриптовую константу и функцию RegQueryStringValue:
[Files]
Source: "D:\Content.war"; DestDir: "{code:GetXamppPath}\tomcat\webapps"
[Code]
function GetXamppPath(Param: string): string;
begin
RegQueryStringValue(HKLM, 'SOFTWARE\xampp', 'Install_Dir', Result);
end;
Хотя вы также должны добавить некоторую обработку ошибок (особенно в случае отсутствия такого раздела реестра).
Кстати, ответ , на котором вы основываете свой сценарий , правильный. Но он делает то, что требует другой вопрос: он считывает ключ во время компиляции = на машине, на которой он построен. Это не то, что вы хотите.