我正在使用Inno Setup创建我们的安装向导,其中包含一个WAMP安装。但据其他人说,双WAMP安装会损害WAMP本身。所以我需要在继续之前检查是否安装了WAMP。有什么方法可以做到这一点吗?
答案 0 :(得分:2)
WAMP在安装过程中创建注册表项。安装程序基于Inno Setup。
有两类注册表项:
1个人:
Person p = new Person
{
Id = int.Parse(dt.Rows[0].Columns["PersonID"]),
Name = dt.Rows[0].Columns["Name"]),
Age = int.Parse(dt.Rows[0].Columns["Age"])
};
p.WorkExperiences = new List<Work>();
List<Work> workExperiences = (from row in dt.AsEnumerable()
select new Work
{
Id = row.Field<int>("WorkID"),
WorkAddress = row.Field<string>("WorkAddress"),
Position = row.Field<string>("Position")
}).ToList();
p.WorkExperiences.AddRange(workExperiences);
2默认卸载信息:
DataTable
,[Registry]
Root: HKLM64; Subkey: "SOFTWARE\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers\";
ValueName: "{app}\wampmanager.exe"; ValueType: String; ValueData: "RUNASADMIN";
Check: "IsWin64"; MinVersion: 0.0,6.0; Flags: uninsdeletevalue uninsdeletekeyifempty
Root: HKLM32; Subkey: "SOFTWARE\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers\";
ValueName: "{app}\wampmanager.exe"; ValueType: String; ValueData: "RUNASADMIN";
Check: "Not IsWin64"; MinVersion: 0.0,6.0; Flags: uninsdeletevalue uninsdeletekeyifempty
这允许我们检查是否安装了WAMP以及安装文件夹中是否存在可执行文件(作为附加检查)。
示例基于WAMP 3.0.6的HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{wampserver64}_is1
版本。
如果需要支持InstallLocation
版本,则需要进行调整。
64-bit
答案 1 :(得分:0)
我可以检查程序是否安装的唯一方法是检查其默认路径和其他可能路径是否包含其文件夹。
if DirExists('C:\wamp')
or DirExists('C:\wamp64')
or DirExists('C:\Program Files\wamp')
or DirExists('C:\Program Files\wamp64')
or DirExists('C:\Program Files(x86)\wamp')
or DirExists('C:\Program Files(x86)\wamp64')
or DirExists('{userdocs}\wamp')
or DirExists('{userdocs}\wamp64')
or DirExists('{userdocs}\Desktop\wamp')
or DirExists('{userdocs}\Desktop\wamp64')
then begin
MsgBox('An installation of WAMP was found.' + #13#10#13#10 + 'Please uninstall any WAMP/XAMPP programs first' + #13#10 + 'or install SpinShot in a different PC.', mbInformation, MB_OK);
Result := False;
end;
end;