Я пытаюсь сгенерировать файл ответов, используя Installshield для чтения ввода из диалогового окна. Итак, в этом случае у меня есть диалоговое окно ApplicationServer с текстовым полем, которое принимает строку для имени сервера лицензий. Я хотел бы, чтобы это значение было записано в файл ответов.
Я попытался сгенерировать файл ответов, добавив этот код в 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;
Любая помощь в получении этого кода будет принята с благодарностью.
Спасибо!