我正在尝试使用注册表值来获取ICONS部分中EXE文件的位置,该值不在普通的\ microsoft \ windows \ exe \ registry中。我有以下代码没有重新调整值,ICON创建时使用"计算机"为了目标。
function GetACADexe (Param: string): string;
var VerKey: String;
var ExeKey: String;
begin
if RegQueryStringValue(HKCU, 'Software\Classes\AutoCAD.Drawing', 'CurVer', VerKey) and
RegQueryStringValue(HKCU, 'Software\Classes\' + VerKey + '\Protocol\StdFileEditing', 'Server', ExeKey) then
Result := ExpandConstant ('{ExeKey}')
end;
答案 0 :(得分:0)
以下是最终的工作答案;
function GetHKCU() : Integer;
begin
if IsWin64 then
begin
Result := HKCU64;
end
else
begin
Result := HKEY_CURRENT_USER;
end;
end;
function GetACADexe(Value: String): string;
var
VerKey: string;
ExeKey: string;
begin
// result should be initialized for case when ACAD is not installed
Result := '';
if RegQueryStringValue(GetHKCU(), 'Software\Classes\AutoCAD.Drawing\CurVer', '', VerKey) and
RegQueryStringValue(GetHKCU(), 'Software\Classes\' + VerKey + '\Protocol\StdFileEditing\Server', '', ExeKey)
then
Result := ExeKey;
end;
除了检查32位或64位系统外,我还遇到了注册表值为"(默认)"价值观,这就是为什么空的'为关键名称。现在效果很好....感谢TLAMA。