Creo que esta es la opción correcta por 2 motivos:1.- Es una aplicación para el
usuario. Tiene que instalarla y como dicen por ahi cambia el desktop del
usuario, no algo comun a todos.2.- Los servicios son eso justamente, un
servicio, algo que corre a nivel de sistema operativo y que agrega alguna
funcionalidad al sistema operativo. En general si te fijas en otras
aplicaciones que son background y de usuario, vas a ver que cuando mucho tienen
un servicio "de soporte" por ejemplo que está controlando si la aplicación en
cuestión sigue viva y si no la vuelve a arrancar. No es el servicio el que
ejecuta la tarea.
Saludos.
Jorge Monsalvo
De: Alejandro Miralles <[email protected]>
Para: [email protected]
Enviado: Jueves, 15 de enero, 2015 10:09:05
Asunto: [puntonet] C# Windows Service
<!--#yiv5379562431 _filtered #yiv5379562431 {font-family:"Cambria
Math";panose-1:2 4 5 3 5 4 6 3 2 4;} _filtered #yiv5379562431
{font-family:Calibri;panose-1:2 15 5 2 2 2 4 3 2 4;}#yiv5379562431
#yiv5379562431 p.yiv5379562431MsoNormal, #yiv5379562431
li.yiv5379562431MsoNormal, #yiv5379562431 div.yiv5379562431MsoNormal
{margin:0cm;margin-bottom:.0001pt;font-size:12.0pt;font-family:"Times New
Roman", serif;}#yiv5379562431 a:link, #yiv5379562431
span.yiv5379562431MsoHyperlink
{color:blue;text-decoration:underline;}#yiv5379562431 a:visited, #yiv5379562431
span.yiv5379562431MsoHyperlinkFollowed
{color:purple;text-decoration:underline;}#yiv5379562431
span.yiv5379562431EmailStyle17 {font-family:"Calibri",
sans-serif;color:#1F497D;}#yiv5379562431 .yiv5379562431MsoChpDefault
{font-family:"Calibri", sans-serif;} _filtered #yiv5379562431 {margin:70.85pt
3.0cm 70.85pt 3.0cm;}#yiv5379562431 div.yiv5379562431WordSection1 {}-->Yo
probaría con una aplicación WinForms corriendo en backgourd, que vaya a parar
al sistem tray.
http://stackoverflow.com/questions/995195/how-can-i-make-a-net-windows-forms-application-that-only-runs-in-the-system-tra
Si bien es posible especificar que el servicio Windows corra con la cuenta
“local system” (o algo así) con acceso root al OS, al menos a mí, me parece too
much…De todas formas, si queres ir con esta opción, cuando armas el instalador
del servicio (utilizando Visual Studio) vas a ver que una de las opciones que
tenes que configurar es: “Con que cuenta va correr el servicio”, ahí le podes
decir es network service, local system, usr, etc… etc… Dependiendo de la opcion
que elijas podras hacer mas o menos cosas.Pero como te decía antes, creo que la
aplicación WinForms podría ir bien, sobre todo si ya comprobaste que desde la
consola funciona correctamente. Saludos, Ale Miralles.http://amiralles.net
From: [email protected] [mailto:[email protected]] On Behalf Of Leandro
Halfon
Sent: jueves, 15 de enero de 2015 09:30 a.m.
To: [email protected]
Subject: [puntonet] C# Windows Service Carlos, gracias pro tu respuesta. El
problema es que lo tengo que hacer con un instalador ya que apunta a usuarios
finales. ¿hay alguna forma de decirle al servicio que lo haga con un usuario
administrador? Porque cada usuario puede tener usuario/pwd diferentes..
2015-01-15 9:24 GMT-03:00 Carlos Peix <[email protected]>:
Leandro, Yo he hecho algunos servicios windows para tareas programadas hasta
que me di cuenta de que, para muchas cosas, basta con el scheduler (o at en la
linea de comando). Probaste con eso? Por otro lado y apuntando a lo que
mencionas, probablemente funcione desde la linea de comando cuando estas
logueado vos pero no desde el servicio porque se ejecuta en el contexto de una
cuenta del sistema que seguramente ni siguiera tiene permisos para iniciar
sesión, mucho menos para configurar el desktop. Dado que deseas cambiar una
configuracion de tu perfil, sugiero que le configures al servicio tu cuenta de
usuario, pero puede molestar cuando cambies tu contraseña. Este problema
tambien lo tendras con el scheduler, desde ya. Podrias probar con un script que
se corra al iniciar sesion.
----------------------------------
Carlos Peix 2015-01-15 8:46 GMT-03:00 Leandro Halfon <[email protected]>:
Hola Lista! Les comento que tengo creado un servicio de windows que lo que
hace es cambiar el wallpaper de la pc cada día.La funcion que cambia el
wallpaper, en un programa de consola, funciona perfecto pero al hacerlo dentro
de un servicio de windows NO funciona. Probé poniendolo con una cuenta local y
habilitandolo la funcion de "interactuar con el escritorio" y sigue sin
funcionar. Lo peor de todo es que no tira ningún error. ¿Alguna idea de cómo
lo puedo solucionar?¿Alguna alternativa que no sea con un servicio de windows?
Gracias!