にインストールした後、MySQL サービスをインストールしたいと考えていますInno Setup
。ここにはすでに同様の質問がありますが、解決策はありません。
ソリューションでそのように使用するsc create
と、インストール後にコマンドプロンプトがポップアップするだけで、何もしません。
一部のページに従ってコマンドを変更しようとしましたが、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 は何も実行しません。そのバックスラッシュに問題がある可能性がありますが、正しい構文がわかりません。
私もここから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;
私はまだこれに熟練していませんが、どこかに間違った引用符があると確信していますが、それを見つけることができません. 助けてくれてありがとう。