MySQL服務我想安裝MySQL服務Inno Setup
後安裝。已經有類似的問題here,但沒有解決方案在那裏爲我工作。安裝在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 Setup的,它需要用雙引號,所以我想這和它的幾個變種
[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不會執行任何操作。問題可能在於反斜槓,但我不知道正確的語法。
我也試過從here添加API並使用下面的代碼,但是也一定有錯,因爲它只是通過安裝,但不會創建服務。
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]'調用不起作用的原因是你忘記了'{cmd}'的'/ c'參數。但使用'{cmd}'完全沒有必要 - 你可以直接調用sc。然而直接使用服務API的最終解決方案無論如何都是更好的。 – Miral 2013-04-08 20:57:47