31/12/2025 - danielito ha scritto:
Purtroppo capita che questa applicazione si stacchi o non si avvi, non avviando la sincronizzazione.
Bisognerebbe comprendere le cause all'origine del mancato avvio, o "stacco", di questa applicazione: magari ci sono altre cause.
31/12/2025 - danielito ha scritto:
devo creare un servizio di windows ?
Creare un servizio Windows è senz'altro una delle opzioni più consigliabili, per tanti buoni motivi: puoi configurare il tipo di avvio del servizio, sia dal Service Control Manager (SCM) sia dal Task Scheduler di Windows, puoi attribuire un utente di esecuzione o diritti speciali, e così via. In modo particolare, il servizio non ha bisogno di effettuare il login per poter partire, cosa che non avviene negli altri contesti.
31/12/2025 - danielito ha scritto:
Si deve riscrivere tutta l'applicazione ?
Dipende da come hai scritto l'applicazione. Quelle che faccio io generalmente no, perché ho cura di suddividere la logica di gestione dell'interfaccia visuale da quella "business", ossia quella che fa il lavoro. Infatti, spesso per servizi di questo tipo creo diversi progetti, uno per la business logic principale (sottoforma di package), una Console che faccia da shell per riga di comandi, un servizio Windows (se serve) e il progetto per gli Unit/Integration Test. Dovessi fruire del mio servizio da un'applicazione web, mi basterebbe aggiungere un altro "guscio" a quelli esistenti, configurando i servizi necessari a seconda del contesto. Queste "aggiunte" possono essere utili se ti serve anche comunicare in qualche modo usando una interfaccia utente di qualche tipo e interagire con il servizio, per visualizzarne lo stato o impartire comandi.
Va da sé che se hai scritto tutto il codice nella Main Form della tua applicazione, questo risulta più arduo da fare e il primo step da seguire è quello di rifattorizzare per avere un'architettura simile a quella che ho descritto sopra, lasciando le applicazioni finali (VCL, Console, Service, ecc.) a fare solo da "involucri", da host per la tua logica, rendendo così anche facile il debug (è senz'altro ostico fare debug su un servizio Windows, mentre è semplicissimo da Console o - ancora meglio! - dai Test).
Da questo punto di vista, Delphi ti consente di creare nativamente tutte le tipologie di queste applicazioni, pure crossplatform se tu volessi!
31/12/2025 - danielito ha scritto:
In realtà il massimo sarebbe che l'applicazione poi si chiuda da solo a un certo orario e riparta l'indomani.
Per queste necessità, ti puoi interfacciare appunto con il Task Scheduler di Windows per eseguire il tuo servizio a orari specifici, con una gamma abbastanza ampia di opzioni.