как да се покаже диалоговият прозорец моля изчакайте по време на функцията EXEC().

как да се покаже диалоговият прозорец моля изчакайте, докато EXEC() изпълнява друго приложение тихо.


person Tom    schedule 01.09.2010    source източник
comment
имаш предвид в php, както тагваш е inno-setup. моля, добавете малко повече подробности.   -  person Pramendra Gupta    schedule 01.09.2010
comment
@JapanPro: Не виждам какво общо има това с PHP.   -  person Andreas Rejbrand    schedule 03.09.2010


Отговори (2)


Наистина ли трябва да бъде кутия за съобщения? Както може би знаете, можете да стартирате външен *.exe по време на настройката и междувременно да показвате потребителско съобщение за състояние. (Съобщението за състояние ще бъде на обичайния етикет за напредъка по време на инсталацията.)

Имам setup.exe, който инсталира продукт A. Този setup.exe съдържа файл setup2.exe, използван за настройка на продукт B. setup.exe копира setup2.exe в папката Program Files по време на инсталирането на продукт A. Когато всички файлове са били копирани, setup.exe след това стартира setup2.exe във фонов режим. За да постигна това, направих

[Run]
Filename: "{app}\setup2.exe"; StatusMSG: "Installing Product 2..."; Parameters: "/VERYSILENT /SUPPRESSMSGBOXES"

в setup.iss (който се компилира в setup.exe). setup2.exe също е инсталатор на Inno Setup, така че параметрите "/VERYSILENT /SUPPRESSMSGBOXES" ще направят инсталирането на продукт 2 безшумно. По време на тази настройка setup.exe ще покаже съобщението „Инсталиране на продукт 2...“.

Ако наистина имате нужда от изскачащо поле за съобщение със съобщението за статус, ще трябва да прибегнете до скриптове на Pascal.

person Andreas Rejbrand    schedule 01.09.2010
comment
Благодаря, използвам функцията EXEC(), мога ли по някакъв начин да покажа STATUS msg с pascal? - person Tom; 02.09.2010
comment
@Tom: Наистина ли трябва да използвате функцията Exec? Защо не можете да използвате [Run] елемент вместо това? Една причина, за която се сещам, е, че трябва да изпълните програмата условно, тоест имате нещо като if ShouldExecute then Exec(...);, където ShouldExecute е функция с булева стойност. Но [Run] елемента също могат да бъдат условни; просто добавете Check:ShouldExecute към него. Вижте jrsoftware.org/ishelp/topic_scriptcheck.htm - person Andreas Rejbrand; 03.09.2010

Можете да използвате ProgressOutputWizardPage, който работи добре за мен, което не е точно сложно. Можете да се обърнете към примера на CodeDlg.iss.

person Interarticle    schedule 04.02.2011