inno setup检测安装路径是否包含中文

inno setup设个软件很好用,但是感觉关于这它的博客好少,一个检测安装路径的方法找了半天没找着,看到一篇【inno setup禁止中文安装路径】,并下载作者的dll和脚本,结果可能是inno setup版本不同,本人直接编译下载的脚本,安装却没有作者编译好的那个exe文件那样可以检测中文的效果。

后面了解到inno setup的[code]部分使用Pascal语法,然后写了一个可以检测中的Pascal方法,逻辑很简单,代码如下

 

// 检测字符串中是否存在中文

function IsChineseStr(txt: String): Boolean;

var

val: Integer;

len: Integer;

i: Integer;

begin

Result := false;

len := length(txt);

for i := 1 to len - 1 do

begin

// 将字符转成ascii值

val := ord(txt[i]);

// 根据字符的ascii码值判断字符是否为中文

if (val > 19968) and (val < 40869) then

begin

Result := true;

end;

end;

 

end;

 

// 下一步按钮触发事件,返回false则不会跳到下一步

function NextButtonClick(CurPageID:Integer):Boolean;

var

hasChinese:Boolean;

 

begin

Result := True;

hasChinese := IsChineseStr(WizardDirValue);

if (CurPageID = wpSelectDir) and (hasChinese) then

begin

Result := False;

MsgBox(ExpandConstant('{cm:ForbiddenChinese}'), mbError, MB_OK);

end;

 

end;

你可能感兴趣的:(inno,setup,Pascal,inno,setup)