Home Page
Articoli
Tips & Tricks
News
Forum
Archivio Forum
Blogs
Sondaggi
Rss
Video
Utenti
Chi Siamo
Contattaci
Username:
Password:
Login
Registrati ora!
Recupera Password
Home Page
Stanze Forum
App. WinForms / WPF .NET
Avviare applicazione da servizio C#
venerdì 18 maggio 2007 - 15.51
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
hydra
Profilo
| Junior Member
158
messaggi | Data Invio:
ven 18 mag 2007 - 15:51
Salve a tutti.
Ho un'applicazione con 3 livelli di accesso; solamente con il livello più alto posso tornare a windows, mentre con gli altri 2 livelli posso solo spegnere il computer. Fin qui nessun problema. Volevo evitare che si possa terminare l'applicazione dal task manager e per questo sto sviluppando un servizio che ciclicamente controlla che l'applicazione sia in esecuzione; quando non trovo l'applicazione in esecuzione vado ad aprire un file xml dove mi sono salvato un parametro che mi dice se sono uscito normalmente (che vado a settare all'interno dell'applicazione). Se questo parametro non è come me lo aspetto voglio che il computer si spenga.
Fin qui tutto normale, funziona tutto sia nell'applicazione sia nel servizio, l'unica cosa che non va è lo spegnimento del computer da servizio. Mi sapete indicare se si può spegnere il computer da un servizio e se si come si fa? Io ho provato a fare così:
Process.Start("ShutDown.exe -s -t 00 -f");
però non funziona. Dove sbaglio? Tenete conto che è il primo servizio che faccio e che sono un neofita di C#
munissor
Profilo
| Senior Member
270
messaggi | Data Invio:
ven 18 mag 2007 - 22:04
Hai già provato Process.Start("shutdown.exe","parametri"); ?
Se neanche così funziona dovresti o ottenere il codice di uscita di shutdown (Process.ExitCode) e vedere a cosa corrisponde.
Assicurati inoltre che l'utente con cui gira il servizio (System, LocalService, NetworkService o un tuo utente) abbia le autorizzazioni necessarie eseguire ciò che deve fare.
hydra
Profilo
| Junior Member
158
messaggi | Data Invio:
lun 21 mag 2007 - 08:15
Perfetto, infatti con
Process.Start("comando", "parametri");
funziona tutto perfettamente. Grazie mille.
hydra
Profilo
| Junior Member
158
messaggi | Data Invio:
mar 29 apr 2008 - 10:42
Riesumo questo vecchio post perchè adesso vorrei fare un'altra cosa.
Il servizio di base è sempre lo stesso, ora vorrei però implementare una interfaccia grafica che mi controlli le opzioni e i settaggi del servizio. Mi sapete dire come si fa per interagire con il servizio? Voglio evitare di scrivere file o chiavi di registro, quindi se si potesse accedere direttamente alle variabili del servizio sarebbe oro.
munissor
Profilo
| Senior Member
270
messaggi | Data Invio:
gio 1 mag 2008 - 09:13
I servizi vengono eseguiti in un desktop separato, quindi non è possibile utilizzare finestre direttamente all'interno del servizio.
Secondo me con C# la scelta più opportuna è il remoting. Utilizzando il servizio come "server" fa in modo che il client si connetta tramite remoting (utlizzando named pipes) e modifichi le variabili direttamente nel servizio in esecuzione.
Un'altra strada possibile è (come dicevi tu) la creazione di file o chiavi di configurazione..
Ciao
hydra
Profilo
| Junior Member
158
messaggi | Data Invio:
mar 20 mag 2008 - 08:31
Tnx
Torna su
Stanze Forum
Elenco Threads
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?
Dopo esserti registrato potrai chiedere
aiuto sul nostro
Forum
oppure aiutare gli altri
Consulta le
Stanze
disponibili.
Registrati ora !