Я хочу установить службу MySQL после установки в Inno Setup
. Существует уже аналогичный вопрос here, но решение для меня не работает.Установите службу MySQL в Inno Setup
Если я использую sc create
, как в решении, то после установки команда promt просто всплывает, но ничего не делает.
Я попробовал команду изменить в соответствии какой-то странице, он прекрасно работает в CMD:
sc create "MySQLSW" binpath= "\"C:\Program Files (x86)\Drevarska spolecnost\MySQL Server 5.6\bin\mysqld\" --defaults-file=\"C:\Program Files (x86)\Drevarska spolecnost\my.ini\" MySQLSW" DisplayName= "MySQLSW" start= "auto"
Для установки Inno она должна быть в двойных кавычках, поэтому я попытался это и несколько вариантов него
[Run]
Filename: "{cmd}"; Parameters: "sc create ""MySQLSW"" binpath= ""\""{app}\MySQL Server 5.6\bin\mysqld\"" --defaults-file=\""{app}\my.ini\"" MySQLSW"" DisplayName= ""MySQLSW"" start= ""auto""";
Но cmd ничего не выполнит. Проблема может быть с этим обратным слэшем, но я не знаю правильного синтаксиса.
Я также попробовал добавить API от here и использовать следующий код, но также должно быть что-то не так, потому что оно просто проходит установку, но не создает службу.
procedure CurStepChanged(CurStep: TSetupStep);
begin
if CurStep = ssPostInstall then
begin
if IsServiceInstalled('MySQLSW') = false then begin
if InstallService(ExpandConstant('{app}\MySQL Server 5.6\bin\mysqld.exe'),ExpandConstant('--defaults-file="{app}\my.ini"'),'MySQLSW','Needed for mysql database',SERVICE_WIN32_OWN_PROCESS,SERVICE_AUTO_START) = true then begin
StartService('MySQLSW');
end
end
else if IsServiceRunning('MySQLSW') then
MsgBox('MySQLSW is running',mbInformation, MB_OK);
end;
end;
Я не очень опытный в этом, но я уверен, что будет какой-то неуместной цитатой где-то, но я не могу найти его. Заранее спасибо за помощь.
Кстати, причина, по которой ваш вызов '[Run]' не работал, заключается в том, что вы забыли параметр '/ c' для' {cmd} '. Но использование '{cmd}' было совершенно не нужно - вы могли бы просто вызвать sc напрямую. Однако окончательное решение об использовании API сервиса напрямую в любом случае. – Miral