作者:虚坏叔叔
早餐店不会开到晚上,想吃的人早就来了!😄
一、整体的代码
关于注册表的读取需要放到[Code]里面去编写代码实现
[Code]
var
S,installPath : string;
I: Integer;
ErrorCode: Integer;
Guid_names: TArrayOfString;
bool : Boolean;
const AppNameSc='软件四川专版';
// 覆盖安装时,对需要保留的xml处理
procedure AfterMerge(tmpDir: string; relativePath: string);
var
FileName: string;
begin
if RegGetSubkeyNames(HKEY_CURRENT_USER,'SOFTWARE\软件设计\',Guid_names) then
begin
for I:=0 to GetArrayLength(Guid_names)-1 do
begin
S := Guid_names[i];
if (AppNameSc = Guid_names[i])
then
begin
bool := RegQueryStringValue(HKEY_CURRENT_USER,'SOFTWARE\软件设计\'+S,'InstallPath',installPath);
// MsgBox(installPath+relativePath, mbError, MB_OK);
FileCopy(tmpDir, installPath+relativePath, false);
end
end;
end
end;
二、关键代码解释
2.1 RegGetSubkeyNames
RegGetSubkeyNames 读取注册表下的所有文件夹的键名
2.2 RegQueryStringValue
RegQueryStringValue 查询字段值
三、总结
- 本文主要介绍用innosetup打包 打出来的包没有管理员权限无法正常的运行软件功能的问题