How to execute cmd commands in Inno Setup -
for installing mysql silently, tried next command in cmd , works fine:
msiexec /i "mysql-essential-6.0.11-alpha-winx64.msi" /qn
but, how can run command before installing in inno setup ?
you can execute calling exec
function curstepchanged
event method, when step ssinstall
. in next script shown, how include mysql installer setup , how extract , execute right before installation starts:
#define mysqlinstaller "mysql-essential-6.0.11-alpha-winx64.msi" [files] source: "{#mysqlinstaller}"; flags: dontcopy [code] procedure curstepchanged(curstep: tsetupstep); var params: string; resultcode: integer; begin if (curstep = ssinstall) begin extracttemporaryfile('{#mysqlinstaller}'); params := '/i ' + addquotes(expandconstant('{tmp}\{#mysqlinstaller}')) + ' /qn'; if not exec('msiexec', params, '', sw_show, ewwaituntilterminated, resultcode) msgbox('installation of mysql failed. exit code: ' + inttostr(resultcode), mbinformation, mb_ok); end; end;
utilize unused progress bar:
since takes time before installation of mysql finishes, , you've decided hide user interface of installer (what might quite unsafe anyway), can extend script utilize progress bar shown @ starting position during installation , unused time. next code switches (on @ to the lowest degree windows xp systems) innosetup's installation progress bar marquee style
, shows description in status label. when mysql installation done, progress bar switched normal mode , actual innosetup installation starts:
#define mysqlinstaller "mysql-essential-6.0.11-alpha-winx64.msi" [files] source: "{#mysqlinstaller}"; flags: dontcopy [code] procedure curstepchanged(curstep: tsetupstep); var params: string; resultcode: integer; begin if (curstep = ssinstall) begin wizardform.progressgauge.style := npbstmarquee; wizardform.statuslabel.caption := 'installing mysql. may take few minutes...'; extracttemporaryfile('{#mysqlinstaller}'); params := '/i ' + addquotes(expandconstant('{tmp}\{#mysqlinstaller}')) + ' /qn'; if not exec('msiexec', params, '', sw_show, ewwaituntilterminated, resultcode) msgbox('installation of mysql failed. exit code: ' + inttostr(resultcode), mbinformation, mb_ok); wizardform.progressgauge.style := npbstnormal; wizardform.statuslabel.caption := ''; end; end;
command-line inno-setup
No comments:
Post a Comment