Avvio applicazione esterna da servizio windows

di il
3 risposte

Avvio applicazione esterna da servizio windows

Ennesimo problema.

Ho una applicazione vcl windows ed un servizio.

il servizio gira come amministratore mentre l 'app come altro utente non admin.

Il servizio ad un certo punto se rileva che l' applicazione non sta piu girando, deve riavviarla.

Ho provato con la shellexecute:

errorcode:=ShellExecute(0,
              nil,
              PWideChar(CommandToExe),
              nil,
              nil,
              SW_SHOWNORMAL);   

ma mi ritorna sempre valore 5 che se non erro è accesso negato.

tra l'altro ho anche un altro problema, che se il servizio si trova in esempio c:\servizio e l allplicazione in d:\applicazione, 

se lancio l'applicazione dal servizio il punto di partenza è cmq c:\servizio e questo mi genera poi problemi all'avvio dell'applicazione.

qualche suggerimento su come fare?

grazie.          

3 Risposte

  • Re: Avvio applicazione esterna da servizio windows

    Aspetta se passa @Alka da questa sezione che è più preparato su delphi.

    Nel frattempo:

    Hai provato a far richiamare un file batch, che sta su D:, il quale a sua volta fa una call all'applicazione?

  • Re: Avvio applicazione esterna da servizio windows

    05/12/2022 - Toki ha scritto:


    Aspetta se passa @Alka da questa sezione che è più preparato su delphi.

    Nel frattempo:

    Hai provato a far richiamare un file batch, che sta su D:, il quale a sua volta fa una call all'applicazione?

    purtroppo si, già provato, anche con file .ink  mi da sempre accesso negato 

  • Re: Avvio applicazione esterna da servizio windows

    05/12/2022 - ziobacco ha scritto:


    Il servizio ad un certo punto se rileva che l' applicazione non sta piu girando, deve riavviarla.

    Se parliamo di un servizio Windows “verace”, questo non può lanciare applicazioni in quanto generalmente ha facoltà di girare anche quando l'utente non ha fatto accesso al desktop.

    Il massimo che potrebbe fare un servizio Windows è avviarne un altro, fungendo da “guardiano”, oppure si potrebbe avere una applicazione tradizionale che invoca il comando di avvio/arresto del servizio, ma non il contrario.

    05/12/2022 - ziobacco ha scritto:


    tra l'altro ho anche un altro problema, che se il servizio si trova in esempio c:\servizio e l allplicazione in d:\applicazione, 

    se lancio l'applicazione dal servizio il punto di partenza è cmq c:\servizio e questo mi genera poi problemi all'avvio dell'applicazione.

    Se si usa il solo percorso dell'eseguibile, è normale che questo venga cercato nella directory corrente o nella directory di lavoro impostata: occorre dare un percorso corretto che sia relativo oppure assoluto.

    In ogni caso, prima di questo è necessario prendere atto del punto precedente.

    Ciao! :)

Devi accedere o registrarti per scrivere nel forum
3 risposte