Esecuzione automatica con servizio windows

di il
5 risposte

Esecuzione automatica con servizio windows

Salve a tutti,
Stavo studiando i servizi di windows (argomenti molto ostico)..

Ho una domandina forse due..
Il metodo OnStart() si riferisce all'esecuzione del servizio? (che se lo faccio partire all'avvio avviene prima del login dell'utente windows, giusto?)

Quindi volessi far partire un programma al login dell'utente (ad esempio notepad per utente1, paint per utente2,..) che metodo devo controllare?
Forse devo usare OnSessionChange.. con il 'metodo' SessionLogon? (mi potreste fare degli esempi di come si usa)

Grazie

5 Risposte

  • Re: Esecuzione automatica con servizio windows

    c3n2o ha scritto:


    Il metodo OnStart() si riferisce all'esecuzione del servizio? (che se lo faccio partire all'avvio avviene prima del login dell'utente windows, giusto?)
    Si riferisce alla partenza del servizio, in qualsiasi momento questa avvenga.
    Quindi volessi far partire un programma al login dell'utente (ad esempio notepad per utente1, paint per utente2,..) che metodo devo controllare?
    Questa non l'ho capita ... che dovrebbe fare il servizio?
  • Re: Esecuzione automatica con servizio windows

    oregon ha scritto:


    Questa non l'ho capita ... che dovrebbe fare il servizio?
    Vorrei che il servizio facesse partire al login dell'utente un programmino o un windowsform..
    Questo windowsform dovrebbe essere una sorta di interfaccia del servizio, ma so che i servizi di windows non possono avere delle WForm, quindi non so come si fa..
  • Re: Esecuzione automatica con servizio windows

    Riprendo la discussione sperando che qualcuno mi dia una mano.
    Alla fine ho scritto un windowsForm al posto del servizio.. con timer ecc..

    Ma adesso mi è ritornato il pallino del servizio:
    Ho creato un servizio di Windows che quando arriva un certo orario mi spegne il PC..

    Ora vorrei creare una notifyicon col quale comandare il servizio (tipo posticiapre lo spegnimento di 24h).. devo creare un windowsform?
    Ho trovato questa pagina: .. va bene?

    Come mi devo organizzare col timer? stoppo il timer del servizio e ne faccio partire un altro di 24ore?

    Grazie
  • Re: Esecuzione automatica con servizio windows

    L'argomento di quel link sono i web service non i servizi di Windows. Non c'entra nulla.

    Per gestire un servizio devi fare in modo di comunicare con questo. Puoi utilizzare diversi modi per comunicare con un servizio, ad esempio, con un socket.

    Non capisco perché tu abbia utilizzato un timer nel servizio, non era necessario. E' preferibile, nel caso che hai esposto, un loop con un delay in cui continuamente esaminare l'orario attuale.
  • Re: Esecuzione automatica con servizio windows

    oregon ha scritto:


    Non capisco perché tu abbia utilizzato un timer nel servizio, non era necessario. E' preferibile, nel caso che hai esposto, un loop con un delay in cui continuamente esaminare l'orario attuale.
    Sto seguendo un esempio che ho trovato sul sito ufficiale.. dove mette appunto un timer nel metodo OnStart..

    Quando tu parli di un loop con un delay intendi una cosa di questo tipo:
    while(true){
      Trigger = new Delay
                           {
                               Duration = TimeSpan.FromSeconds(60000)  // ogni minuto
                           };
      if (System.DateTime.Now.Hour == 11 && System.DateTime.Now.Minute == 50)
                          {
                             SpegniPC();
                          }
    }
Devi accedere o registrarti per scrivere nel forum
5 risposte