如何通过Inno Setup获取系统显示名称?

时间:2010-11-25 10:16:01

标签: inno-setup

如何获取系统文件浏览器中显示的文件,目录或文件夹的系统显示名称?例如,原始CD以某种方式命名,我想做一点复制保护

1 个答案:

答案 0 :(得分:1)

Inno Setup不提供此类功能。但是,您可以轻松编写自己的DLL来调查安装程序的CD驱动器的标签。在Pascal中,只需

function GetCDLabel: string;
var
  VolumeName: PChar;
  dummy: cardinal;
begin
  GetMem(VolumeName, MAX_PATH * sizeof(char));
  try
    if GetVolumeInformation(PChar('D:\'), VolumeName, MAX_PATH + 1, nil, dummy, dummy, nil, 0) then
      result := VolumeName
    else
      RaiseLastOSError; // or result := 'Invalid';
  finally
    FreeMem(VolumeName);
  end;
end;

Inno Setup允许您在设置中包含DLL,并在安装过程中调用这些DLL中的函数。当然,您的设置必须告诉DLL函数其文件名,以便DLL函数可以使用正确的驱动器。你不能只假设它是D:\