Installshield SilentWriteData функция для записи в файл ответов - PullRequest
0 голосов
/ 08 января 2019

Я пытаюсь сгенерировать файл ответов, используя 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;

Любая помощь в получении этого кода будет принята с благодарностью.

Спасибо!

...