2009-05-27 22 views
7

Tôi đang cố tải thư mục cài đặt của một ứng dụng từ Windows Registry (Google Sketchup trong trường hợp này) bằng kịch bản Pascal của Inno Setup để tôi có thể cài đặt một plugin ở đó.Làm cách nào để có được giá trị đăng ký trong Cài đặt Inno khi giá trị chỉ sử dụng tên mặc định?

Khoá đăng ký không có tên, nó chỉ có "(Mặc định)" trong Regedit.

Tôi cố gắng này:

RegQueryStringValue(HKLM, 'SOFTWARE\Google\Google Sketchup 6', '(Default)', pluginLoc); 

nhưng nó không trả về giá trị. Bất kỳ đề xuất?

Trả lời

14

Chỉ cần rời khỏi SubKeyName trống rỗng, như vậy:

[Code] 
function InitializeSetup(): Boolean; 
var 
    V: string; 
begin 
    if RegQueryStringValue(HKLM, 'SOFTWARE\Google\Google Sketchup 6', '', V) then 
    MsgBox('Value is "' + V + '"', mbInformation, MB_OK); 
    Result := TRUE; 
end; 

Các tài liệu phù hợp cho các cuộc gọi API cơ bản là cho RegQueryValueEx(), trong đó nêu:

Tên của giá trị registry.

Nếu lpValueName là NULL hoặc chuỗi rỗng, "", hàm sẽ truy xuất loại và dữ liệu cho giá trị chưa đặt tên hoặc giá trị mặc định của khóa, nếu có.

+0

Cảm ơn bạn rất nhiều. Nó hoạt động khá độc đáo. – kraryal

+0

Đó là 'ValueName', không phải' SubKeyName' cần phải trống. – Maxence

Các vấn đề liên quan