I wrote a batch script to execute after my installation that is made with Inno Setup. The problem is that I have the following command line for my service creation:
You could try to add this command to [RUN]
section (as TLama suggested) or create AfterInstall
function in [CODE]
section.
[Run]
Filename: "{cmd}"; Parameters: "sc create MySQL start= auto DisplayName= MySQL
binPath= ""C:\MyApp\MySQL 5.5\bin\mysqld""
--defaults-file=""C:\MyApp\MySQL 5.5\my.ini""";
Flags: runhidden
Rather than calling SC directly, it's cleaner (and easier to deal with any errors or service dependencies) to use the API. Note that this example assumes that you're using ANSI Inno, but it's fairly straightforward to modify this for Unicode.
Personally, though, I prefer to build install/start/stop/uninstall commands into the service executable itself, making it self-registering. Obviously this isn't possible to do yourself for a third-party service, but you could check to see if it already supports something like this.
One final point is that you must not hard-code the path to a C: folder. You should be using {app}
instead.