Installshield SilentWriteData函数可写入响应文件

时间:2019-01-08 13:20:36

标签: installshield

我正在尝试使用Installshield生成响应文件以从对话框中读取输入。因此,在这种情况下,我有一个ApplicationServer对话框,其中的文本字段包含许可证服务器名称的字符串。我希望将该值写入响应文件。

image 1 我试图通过将此代码添加到Setup.rul来生成响应文件,希望能够运行

setup.exe -r 

并获得回复

到目前为止,这是我的代码:

function Generate_SilentWriteData(hMSI)
// To Do:  Declare local variables.
BOOL bDone; 
STRING svSection;
LIST listID;    
NUMBER nvHandle,nCmdValue;
HWND hwndDlg;

begin
//MessageBox ("Generating .iss file", SEVERE);

OpenFileMode (FILE_MODE_APPEND);
OpenFile (nvHandle, "c:\\Installer", "cominit.txt");
listID = ListCreate (STRINGLIST);
ListAddString (listID,  "COMM1:", AFTER);
ListAddString (listID,  "COMM2:", AFTER);
ListAddString (listID,  "COMM3:", AFTER);
ListAddString (listID,  "COMM4:", AFTER);
EzDefineDialog ("AskLicenceServer", SUPPORTDIR^"RESOURCE.DLL",
                   "COMM_DIALOG",0);
bDone = FALSE;

while (bDone=FALSE)
        nCmdValue = WaitOnDialog ("AskLicenceServer");
switch (nCmdValue)
case DLG_INIT:
     hwndDlg = CmdGetHwndDlg("AskLicenceServer");
     SdGeneralInit("AskLicenceServer", hwndDlg, 0, "");
     CtrlSetState ("AskLicenceServer", NEXT, BUTTON_CHECKED);
     CtrlSetList ("AskLicenceServer",BACK, listID);
     CtrlSetState ("AskLicenceServer", CANCEL, BUTTON_CHECKED);        
        bDone = FALSE; 
 endswitch;
 endwhile;
    EndDialog ("AskLicenceServer");

    ReleaseDialog ("AskLicenceServer");        

CloseFile (nvHandle);
end;

任何帮助使此代码起作用的帮助将不胜感激。

谢谢!

0 个答案:

没有答案