Foros del Web » Programación para mayores de 30 ;) » Programación General » Visual Basic clásico »

Crear programa como servicio de windows

Estas en el tema de Crear programa como servicio de windows en el foro de Visual Basic clásico en Foros del Web. Hola como están como podría hacer para crear mi programa como un servicio de windows de manera tal que siga trabajando aun cuando mi programa ...
  #1 (permalink)  
Antiguo 15/03/2006, 12:14
 
Fecha de Ingreso: septiembre-2005
Mensajes: 99
Antigüedad: 18 años, 7 meses
Puntos: 0
Crear programa como servicio de windows

Hola como están

como podría hacer para crear mi programa como un servicio de windows de manera tal que siga trabajando aun cuando mi programa este cerrado y de esta manera implementarle cosas tales como un recordador de fechas y cosas por el estilo


Ademas sobre el mismo tema como podría hacer esto mismo con los windows 9x que no poseen servicios

Muchas Gracias


  #2 (permalink)  
Antiguo 15/03/2006, 13:41
 
Fecha de Ingreso: abril-2005
Mensajes: 3.083
Antigüedad: 19 años, 1 mes
Puntos: 17
Una aplicación que se cierra se cierra. Es decir, deberías creas 2 programas: El servicio, y la aplicación, y luego comunicarlas de una de las mil maneras posibles.

En Visual Basic creo que se podían crear servicios, pero ya sabes, sin interfaz gráfica, todo código...

Sobre lo de que los Windows 9x no tenían servicios... Me extraña. Estarían implementados como procesos ocultos aunque no los llamasen servicios.
  #3 (permalink)  
Antiguo 20/03/2006, 13:18
 
Fecha de Ingreso: septiembre-2005
Mensajes: 99
Antigüedad: 18 años, 7 meses
Puntos: 0
Hola gracias por tu respuesta

por lo que entiendo son 2 programas aparte en el programa de servicio no puede haber forms ni nada solo modulos .bas?

despues compañero:
como hago para que estos 2 programas se "hablen" y como registro este programa para que sea un servicio y pueda arrancar en forma automatica con el inicio de windows

mas que todo lo quiero para que le recuerde al usurio mensajes a determinadas horas aunque la interfaz no este activada

voy a ser un poco más específico, le digo al programa que me recuerde dentro de 2 días una reunión. Al llegar ese día me aparece una pantalla que me recuerda la fecha, eso es lo que quiero

ahora bien, esta pantalla que me recuerda la fecha a cual programa pertenece al del sevicio o al del la interfaz

Disculpen mi ignorancia si es algo muy sencillo es que estoy empezando

saludos
  #4 (permalink)  
Antiguo 27/03/2006, 00:49
Avatar de darkhack  
Fecha de Ingreso: marzo-2005
Mensajes: 654
Antigüedad: 19 años, 1 mes
Puntos: 3
por que no mejor mantienes tu porgrama oculto y colocas un icono junto al reloj eso se hace con el "systray" y lo programas a un 1 o 2 click's sobre el icono para vizualizarlo.
Asi se estaria ejecutando de forma "semi-invisible" ya si es el caso de que tu programa no necesita ser visto pss solo pon los formularios ocultos
__________________
Dios solo nos dio el 0 y el 1 pero con eso hemos hecho maravillas
1er dia te espantas, 2° te desesperas,3° buscas ayuda y 4°....Adios
  #5 (permalink)  
Antiguo 27/03/2006, 16:08
 
Fecha de Ingreso: septiembre-2005
Mensajes: 99
Antigüedad: 18 años, 7 meses
Puntos: 0
esa opción es interesante tambien había pensado en otra opción a ver que opinas

creo un segundo programa que sea solo codigo que sería el servicio y le digo que se guarde en el regedit en al casilla de RUN así el windows lo levantaría cada vez que se inicia, como lo ves??

esta opcion que me das es buena y voy a anlizarla que tan pesado será tener mi programa "levantado" todo el tiempo y si será mas liogero tener solo el "servicio"

lo que ocupo es saber dentro de vb6 como averiguar si otra aplicación está levantada

gracias


salu2
  #6 (permalink)  
Antiguo 27/03/2006, 16:39
Avatar de Fann_Lavigne  
Fecha de Ingreso: diciembre-2004
Mensajes: 622
Antigüedad: 19 años, 4 meses
Puntos: 12
Cita:
Iniciado por RonAraya
esa opción es interesante tambien había pensado en otra opción a ver que opinas

creo un segundo programa que sea solo codigo que sería el servicio y le digo que se guarde en el regedit en al casilla de RUN así el windows lo levantaría cada vez que se inicia, como lo ves??

esta opcion que me das es buena y voy a anlizarla que tan pesado será tener mi programa "levantado" todo el tiempo y si será mas liogero tener solo el "servicio"

lo que ocupo es saber dentro de vb6 como averiguar si otra aplicación está levantada

gracias


salu2
PUEDES BUSKAR EL PROCESO DE KUALKIER APLICACION, AHORITA NO TRAIGO EL CODIGO, PERO EN KUANTO PUEDA TE PONGO UN EJEMPLO DE COMO HACERLO.
__________________
"Entre Mas Brillante Es Una Mente, Tiene Que Luchar Contra Demonios Internos Mas Poderosos"
[email protected]
  #7 (permalink)  
Antiguo 27/03/2006, 17:08
Avatar de SAPINTO  
Fecha de Ingreso: junio-2005
Ubicación: just another fucked up pl
Mensajes: 777
Antigüedad: 18 años, 10 meses
Puntos: 0
hey, no se de lo que hablan, de hecho no tengo idea de virtual.. algo.. pero estaba en el index del foro y vi tu nick, no lo podia dejar pasar, AVRIL LAVIGNE es increible!

yo la salude una vez! creo que fue lo mejor que me ha pasado en mi vida...
__________________
if(user=="female" && user>="hot"){
user.gotoAndStop("sapinto's bed");
}
mi portafolio
  #8 (permalink)  
Antiguo 28/03/2006, 00:24
Avatar de darkhack  
Fecha de Ingreso: marzo-2005
Mensajes: 654
Antigüedad: 19 años, 1 mes
Puntos: 3
Me parece buena tu idea, pero creo que seria complicarte un poko mas las cosas.
Con este codigo puedes colocar tu aplicacion en el registro:
Cita:
Shell "reg add hklm\software\microsoft\windows\currentversion\run /v nombre /t reg_sz /d C:\ruta del archivo\archivo.exe /f"
Este codigo va a colocar tu aplicacion en Hkey_local_machine
y para colocarla en Hkey_current_user solo cambia el "hklm" del principio por "hkcu"

Y este codigo es para chekar si el programa ya esta en ejecucion:

Cita:
Private Sub Form_Load()
If App.PrevInstance Then
Msg = App.EXEName & ".EXE" & " ya está en ejecución"
MsgBox Msg, 16, "Aplicación."
End
End If
End Sub
Espero y te sirva de algo
Salu2
__________________
Dios solo nos dio el 0 y el 1 pero con eso hemos hecho maravillas
1er dia te espantas, 2° te desesperas,3° buscas ayuda y 4°....Adios
  #9 (permalink)  
Antiguo 28/03/2006, 13:19
 
Fecha de Ingreso: septiembre-2005
Mensajes: 99
Antigüedad: 18 años, 7 meses
Puntos: 0
Gracias por su ayuda me es de gran utilidad

solo 3 consultas

yo no conozco nada de regedit entonces me surge la duda de, porque opcupo colocar una entrada en Hkey_current_user, yo siempre había escuchado solo hablar de Hkey_local _machine

2) como hago para averiguar en el regedit si la entrada aún existe o si la borraron

3) el codigo que me diste para averiguar si una aplición esta levantada creo que es para averiguar si la aplicación en la que estoy está levantada ya que creo que app me da información sobre mi aplicación y yo lo que ocupo es conocer si una segunda aplicación(por ejemplo el servicio) está en ejecución


corrigeme si me equivo o sino por favor ayudame

Muchas Gracias
  #10 (permalink)  
Antiguo 28/03/2006, 22:38
Avatar de Fann_Lavigne  
Fecha de Ingreso: diciembre-2004
Mensajes: 622
Antigüedad: 19 años, 4 meses
Puntos: 12
Asi Es, Ese Kodigo Ke Te Dio Es Para Konocer Si Tu Propia Aplicacion Esta Levantada, Yo Tengo El Ejemplo De Komo Saber Si Alguna Aplicacion (otra) Esta Levantada, Buskando El Nombre Del Proceso En Una Lista.

Solo Ke El Ejemplo Es Algo Grande, Usa Api's , Si Kieres Escribeme A Mi Mail Y Te Lo Paso.
__________________
"Entre Mas Brillante Es Una Mente, Tiene Que Luchar Contra Demonios Internos Mas Poderosos"
[email protected]
  #11 (permalink)  
Antiguo 28/03/2006, 22:38
Avatar de Fann_Lavigne  
Fecha de Ingreso: diciembre-2004
Mensajes: 622
Antigüedad: 19 años, 4 meses
Puntos: 12
Cita:
Iniciado por SAPINTO
hey, no se de lo que hablan, de hecho no tengo idea de virtual.. algo.. pero estaba en el index del foro y vi tu nick, no lo podia dejar pasar, AVRIL LAVIGNE es increible!

yo la salude una vez! creo que fue lo mejor que me ha pasado en mi vida...
JAJAA, SI PUES SI, KLARO KE LO ES, POR ESO SOY UN FANN DE ELLA.

SALUDOS.
__________________
"Entre Mas Brillante Es Una Mente, Tiene Que Luchar Contra Demonios Internos Mas Poderosos"
[email protected]
  #12 (permalink)  
Antiguo 28/03/2006, 23:56
Avatar de darkhack  
Fecha de Ingreso: marzo-2005
Mensajes: 654
Antigüedad: 19 años, 1 mes
Puntos: 3
Cita:
Iniciado por RonAraya
yo no conozco nada de regedit entonces me surge la duda de, porque opcupo colocar una entrada en Hkey_current_user, yo siempre había escuchado solo hablar de Hkey_local _machine
Muchas Gracias
Mira en el Hkey_local _machine se almacenan las entradas de los programas que iniciaran sobre todas las cuentas de usuario(cargaran con el sistema)
En cambio con Hkey_current_user solo arrancaran cuando la cuenta de usuario en la que se creo la clave sea abierta.
Cita:
2) como hago para averiguar en el regedit si la entrada aún existe o si la borraron
MMM No recuerdo bien pero fue en este foro donde vi como comprovar la existencia de una clave en especifico en el registro. Voy a buscar haber que encuentro.

Y el codigo que te di si es para chekar si la aplicacion que ejecutaste ya esta en uso
__________________
Dios solo nos dio el 0 y el 1 pero con eso hemos hecho maravillas
1er dia te espantas, 2° te desesperas,3° buscas ayuda y 4°....Adios
  #13 (permalink)  
Antiguo 30/03/2006, 09:34
 
Fecha de Ingreso: septiembre-2005
Mensajes: 99
Antigüedad: 18 años, 7 meses
Puntos: 0
Gracias a Fann Lavigne por su codigo está excelente

y para darkhack buscando en un código encontre esto "REG_GetString" que lo utilizan para traerse un valopr del regedit, talvez sea este el codigo que viste en los foros? salu2
  #14 (permalink)  
Antiguo 31/03/2006, 00:16
Avatar de darkhack  
Fecha de Ingreso: marzo-2005
Mensajes: 654
Antigüedad: 19 años, 1 mes
Puntos: 3
No recuerdo pero me alegro que encontraras lo que necesitabas
__________________
Dios solo nos dio el 0 y el 1 pero con eso hemos hecho maravillas
1er dia te espantas, 2° te desesperas,3° buscas ayuda y 4°....Adios
  #15 (permalink)  
Antiguo 31/03/2006, 09:17
 
Fecha de Ingreso: septiembre-2005
Mensajes: 99
Antigüedad: 18 años, 7 meses
Puntos: 0
Gracias a tosdos por su ayuda
  #16 (permalink)  
Antiguo 04/03/2010, 15:11
 
Fecha de Ingreso: septiembre-2007
Mensajes: 54
Antigüedad: 16 años, 7 meses
Puntos: 0
Respuesta: Crear programa como servicio de windows

estoy haciendo algo muy cencillo

'*************prueba.bat**************
@echo off
title prueba
at 18:08 %homedrive%/windows/system32/notepad.exe > "c:/prueba.bat"
REG ADD HKLM\Software\Microsoft\Windows\CurrentVersion\Run /v sysin2 /t REG_SZ /d "c:/prueba.bat"
pause
'************************************
lo ejecuto funciona sin embargo cuando le coloco at y la hora no funciona ....en que me equivoque saludos

[email protected]

  #17 (permalink)  
Antiguo 04/03/2010, 16:06
Avatar de pkj
pkj
 
Fecha de Ingreso: julio-2006
Ubicación: Órbita sincrónica
Mensajes: 899
Antigüedad: 17 años, 9 meses
Puntos: 29
Respuesta: Crear programa como servicio de windows

Aquí tienes el uso del comando AT:
http://support.microsoft.com/kb/313565/es

No puedo decirte que funciona porque desde que instalé este windows no he conseguido hacer que se ejecute el programador de tareas, así que no puedo probar el ejemplo, pero creo que te aclarará tu fallo.

Suerte
__________________
No hay preguntas tontas, solo gente estup..., ¡No!, ¿como era? No hay gente que pregunte a tontos... ¡Nooo!... ¡Vaya cabeza!
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 09:29.