Título: ¿Por qué este servicio no muestra ventana? Publicado por: Kaxperday en 27 Diciembre 2015, 21:57 pm Es un copy/paste hay muchas cosas que cambiaría si y no es la manera.. pero simplemente quiero que el servicio muestre una ventana diciendo si soy admin o no cuando se ejecuta nada más, es de codeproyect el código.
Código
Lo instalé y está en ejecución pero no muestra nada. Bueno lo dejaré por hoy, ya lo miraré con detalle como funciona y demás. O de otra manera, ¿dónde debería de ir el código?. Saludos. Título: Re: ¿Por qué este servicio no muestra ventana? Publicado por: Zekkk en 27 Diciembre 2015, 23:04 pm Porque no estas creando ninguna ventana. Ve como crear una ventana, en WINAPI me parece que es con CreateWindow, o puedes mostrar los resultados en una consola.
Título: Re: ¿Por qué este servicio no muestra ventana? Publicado por: Kaxperday en 28 Diciembre 2015, 00:16 am Porque no estas creando ninguna ventana. Ve como crear una ventana, en WINAPI me parece que es con CreateWindow, o puedes mostrar los resultados en una consola. ?? Código
¿No debería esto de mostrar una ventana?, al compilarlo como ejecutable la muestra otra cosa sea que no llegue a esa línea de código que es lo que me pregunto, ¿dónde debería de ir el código? ¿El main de la aplicación, del servicio, lo que quiero que haga?, bueno me quiero adelantar ahora, pero realmente tendré que leer y aprender de servicios un poco, y ver si este es el camino que busco. ¿En qué linea debería de mostrar datos o una ventana?. Saludos. Título: Re: ¿Por qué este servicio no muestra ventana? Publicado por: Eternal Idol en 28 Diciembre 2015, 09:06 am MB_SERVICE_NOTIFICATION
https://msdn.microsoft.com/en-us/library/windows/desktop/ms645505%28v=vs.85%29.aspx https://msdn.microsoft.com/en-us/library/windows/desktop/ms683502%28v=vs.85%29.aspx Mejor no usar nada visual en un servicio, la idea es de segundo plano y en versiones mas recientes de Windows se ejecutan en una sesion propia separada de las interactivas del usuario loggeado. No es casualidad que el ejemplo use abundantemente OutputDebugString, aca tenes una herramienta para ver ese output: https://technet.microsoft.com/en-us/sysinternals/debugview.aspx Título: Re: ¿Por qué este servicio no muestra ventana? Publicado por: Kaxperday en 28 Diciembre 2015, 13:51 pm MB_SERVICE_NOTIFICATION Eso es, así si que muestra una ventana. He probado a ponerlo en diferentes zonas del código pero solo me ha funcionado en el _tmain que lo he puesto en su primera línea: Código
¿Cual sería la línea o la función donde debería de poner mi código ¿en el _tmain?, quiero decir donde meter un programa en su conjunto con sus threads y todo, ¿solo con el _tmail me basta?, porque había cosas de iniciaizar servicio y controlador y demás que ni idea, y supongo que en mitad de eso no sea buena idea meter el codigo. ¿Dónde debería ponerlo? Muchas gracias y un saludo. Edito: Una vez que lo compilo lo instalo con: Código: C:\WINDOWS\system32>sc create mysample2 binpath= "C:\Users\Usuario\Desktop\servicio2.exe" Entonces lo inicio desde el administrador de tareas y muestra estado "en ejecución", pero no muestra ninguna ventana, sin embargo al ejecutarlo en VS13 si lo hacía, ¿que pasa?. El objetivo final es comprobar que un servicio se va a ejecutar siempre como localsystem a fin de cuentas concederá los mismos permisos que de administrador si de código hablamos que es lo que busco, y que lo haga sin UAC, solo lo pida en su instalación y después ya sea capaz de actuar siempre con esos permisos, nada más. También me he dado cuenta que "sc delete "nombreservicio" elimina el servicio, pero no su ejecutable asociado, por lo tanto podrían volverlo a instalar sin problema de nuevo. Un saludo. |