仔细了解了下,InstallShield这几种定义的变量的用法:
1.String Tables里的变量:
Installation Information->General Information->String Tables 在设置的语言中:如Chinese(Simplified)  添加变量TestStr 并设置值。在Script中使用方法:
eg.

InstallShield 之String Table /property /path变量STRING tempStr;
InstallShield 之String Table /property /path变量BEGIN
     tempStr=@TestStr;
InstallShield 之String Table /property /path变量MessageBox(tempStr,INFORMATION);
InstallShield 之String Table /property /path变量
END;

2.Property:
Behavior and Logic->Property Manager 添加变量如SoloProperty.在Script中使用语法:
eg.

InstallShield 之String Table /property /path变量function OnBegin()     
InstallShield 之String Table /property /path变量
STRING tempStr,tempStr2;  
InstallShield 之String Table /property /path变量   
STRING svUsername[256];
InstallShield 之String Table /property /path变量    NUMBER nBuffer;
InstallShield 之String Table /property /path变量begin
InstallShield 之String Table /property /path变量    nBuffer 
= 256;
InstallShield 之String Table /property /path变量    MsiGetProperty(ISMSI_HANDLE, 
"SoloProperty", svUsername, nBuffer);
InstallShield 之String Table /property /path变量    MessageBox(
"SoloProperty Value is = " + svUsername, INFORMATION); 
InstallShield 之String Table /property /path变量    
Exit;
InstallShield 之String Table /property /path变量
end;

A useful function like this,:-):
Code:

InstallShield 之String Table /property /path变量prototype STRING GetValue(STRING);
InstallShield 之String Table /property /path变量prototype VOID SetValue(
STRINGSTRING);
InstallShield 之String Table /property /path变量
InstallShield 之String Table /property /path变量
function STRING GetValue(szName)
InstallShield 之String Table /property /path变量    
STRING szResult;
InstallShield 之String Table /property /path变量    NUMBER nLength;
InstallShield 之String Table /property /path变量    NUMBER nRetVal;
InstallShield 之String Table /property /path变量begin
InstallShield 之String Table /property /path变量    nLength 
= 1024;
InstallShield 之String Table /property /path变量    nRetVal 
= MsiGetProperty(ISMSI_HANDLE, szName, szResult, nLength);
InstallShield 之String Table /property /path变量    
if(nRetVal != ERROR_SUCCESS) then
InstallShield 之String Table /property /path变量        MessageBox(
"Error retrieving value for: " + szName, WARNING);
InstallShield 之String Table /property /path变量    endif;
InstallShield 之String Table /property /path变量    return szResult;
InstallShield 之String Table /property /path变量
end;             
InstallShield 之String Table /property /path变量
InstallShield 之String Table /property /path变量
function VOID SetValue(szName, szValue)
InstallShield 之String Table /property /path变量    NUMBER nRetVal;
InstallShield 之String Table /property /path变量begin
InstallShield 之String Table /property /path变量    nRetVal 
= MsiSetProperty(ISMSI_HANDLE, szName, szValue);
InstallShield 之String Table /property /path变量    
if(nRetVal != ERROR_SUCCESS) then
InstallShield 之String Table /property /path变量        MessageBox(
"Error setting value for: " + szName, WARNING);
InstallShield 之String Table /property /path变量    endif;
InstallShield 之String Table /property /path变量
end;


useage Code:

InstallShield 之String Table /property /path变量svMyValue = GetValue("SOME_PROPERTY");
InstallShield 之String Table /property /path变量SetValue(
"SOME_OTHER_PROPERTY", svMyValue);

3. Path variables:
Media->Path Variables
找到这句话:

InstallShield 之String Table /property /path变量Path variables used to represent source paths are not available at run time, only at build time.

 

相关文章: