为了满足Win 8的要求,我需要将数据文件(data.mpd
)从先前安装的安装目录(通常为c:\ProgramFiles
,但用户可能已更改为其他内容)复制到新的目录c:\User\....
我怎么能:
答案 0 :(得分:0)
您可以使用包含文件夹路径的WizardForm.PrevAppDir
属性,其中具有某个AppId
的安装程序之前已安装该应用程序(如果尚未安装,则为空)。请注意,在初始化向导表单后填充此属性,因此请在InitializeWizard
事件后阅读。
对于您的任务,我会在预安装步骤中执行此操作,因此对于CurStepChanged
事件方法,我会写如下:
[Code]
procedure CurStepChanged(CurStep: TSetupStep);
var
DataFilePath: string;
begin
// check if the current step is pre-installation step and if the
// application had been previously installed; if so, then...
if (CurStep = ssInstall) and (WizardForm.PrevAppDir <> '') then
begin
// build and store the path to the Data.mpd file from the prev.
// installation path
DataFilePath := AddBackslash(WizardForm.PrevAppDir) + 'Data.mpd';
// check, if that Data.mpd file exists; if so, then...
if FileExists(DataFilePath) then
// copy it to the target directory; if it fails, show error message
if not FileCopy(DataFilePath, <your new directory here>, False) then
MsgBox('Copying of the Data.mpd failed!', mbError, MB_OK);
end;
end;
答案 1 :(得分:0)
使用DisableDirPage=auto
。这将阻止人们在升级时更改安装路径。
然后让您的应用程序(而不是安装程序)在其自己的文件夹中检测此文件,并将其复制到每个用户文件夹。如果多个用户运行您的应用程序(这是拥有每个用户数据的全部要点),这将为您提供最强大的行为。