Para eso puedes hacerlo mediante comandos de consola de windows desde dentro de tu programa
Por ejemplo con net start > servicios.txt puedes guardar los servicios que estan corriendo en windows, y ver luego el archivo servicios.txt si existe tu servicio, y sino, instalarlo. Y así cualquier otro comando de windows.
Por ejemplo, si quiero saber si está instalado MySQL en la terminal, hago lo siguiente:
Code: Select all | Expand
#include 'fivewin.ch'
Function Main()
LOCAL cComando , cRta
cComando := "C:\windows\system32\net.exe start > .\servicios.txt"
MemoWrit('servicios.bat',cComando)
DELETE FILE servicios.txt
WaitRun( 'servicios.bat', 0 )
cRta := MemoRead("servicios.txt")
IF !"MySQL"$cRta
MsgStop("MySQL Error")
//O instalar el servicio
ELSE
MsgInfo("MySQL Ok")
// Seguir con tu logica
ENDIF
RETURN nil