2つのバイナリがあり、それらのサービスを作成する必要があります。 Inno SetupでWindowsサービスをインストールするにはどうすればいいですか? から「sccreate」を使用して解決策を試しました。
しかし、それは私にとってはうまくいきませんでした。インストールの最後にスタックします。私は何が間違っているのですか?
これが私のコードです:
Filename: {cmd}; Parameters: "sc create srvname start= auto DisplayName= mysrv binPath= {app}\mybinary.exe" ; Flags: runhidden
{cmd}
の代わりにcmd
を使用してみました-変更はありません。
参照したソリューションでPascalコードを試しませんでした。私はそれを最後の手段として維持しています。
私はこのコードを使用し、両方のサービスがインストールとアンインストールを行っています。
[run]
Filename: {sys}\sc.exe; Parameters: "create mysrv start= auto binPath= ""{app}\mysrv.exe""" ; Flags: runhidden
[UninstallRun]
Filename: {sys}\sc.exe; Parameters: "stop mysrv" ; Flags: runhidden
Filename: {sys}\sc.exe; Parameters: "delete mysrv" ; Flags: runhidden
これで問題が解決したのに、なぜこの場合にPascalを使用する必要があるのでしょうか。
{cmd}
を実行しようとしている理由はありますか?
/C
パラメーターを追加し、必要に応じて残りを引用するか、必要なパラメーターを指定してsc.exe
を実行します。
[Run]
Filename: "sc.exe"; Parameters: "create srvname start= auto DisplayName= mysrv binPath= {app}\mybinary.exe" ; Flags: runhidden
サービスをインストールする正しい方法は、 この回答 で説明されているAPIであり、エラーを検出して処理できることに注意してください。