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

Aplicación que corre de forma "OCULTA" (proceso / servicio)

Estas en el tema de Aplicación que corre de forma "OCULTA" (proceso / servicio) en el foro de Visual Basic clásico en Foros del Web. Necesito crear una pequeña aplicación en VB6 que se ejecute de forma "oculta", sin aparecer nada en el escritorio sino que por contrario corra como ...
  #1 (permalink)  
Antiguo 20/12/2006, 08:18
 
Fecha de Ingreso: diciembre-2004
Mensajes: 721
Antigüedad: 19 años, 4 meses
Puntos: 2
Pregunta Aplicación que corre de forma "OCULTA" (proceso / servicio)

Necesito crear una pequeña aplicación en VB6 que se ejecute de forma "oculta", sin aparecer nada en el escritorio sino que por contrario corra como lo hacen los servicios (que pueden ser visibles desde el administrador de tareas -> procesos).

La idea es que esta pequeña aplicación simplemente detecte si está o no ejecutandose una segunda aplicación, y en caso negativo que realice una acción específica.

¿Como podría crear una aplicación que corra como servicio sin ser visible más que en el administrador de tareas?

¿Para detectar si una aplcación "X" está activa necesito utilizar sockets ó en Windows puedo simplemente acceder a la lista de tareas en ejecución y buscar el string "Nombre del ejecutable" de la aplicación secundaria?


Desde ya, les agradezco mucho por cualquier tipo de ayuda que pudieran darme.

Un saludo grande.
  #2 (permalink)  
Antiguo 20/12/2006, 08:35
Avatar de mveraa  
Fecha de Ingreso: diciembre-2002
Ubicación: santiago-chilito
Mensajes: 1.931
Antigüedad: 21 años, 4 meses
Puntos: 2
Re: Aplicación que corre de forma "OCULTA" (proceso / servicio)

suponiendo que tu aplicacion esta en un solo formulario. al apretar un boton o en el form load

form1.visible=false

la aplicacion sigue corriendo aunque no se ve, solo es visible desde el administrador de tarea.

un saludo
__________________
"Cuando se adelanta un oponente, enfréntalo y salúdalo; si intenta retroceder, déjalo seguir su camino"
  #3 (permalink)  
Antiguo 20/12/2006, 08:42
Avatar de mveraa  
Fecha de Ingreso: diciembre-2002
Ubicación: santiago-chilito
Mensajes: 1.931
Antigüedad: 21 años, 4 meses
Puntos: 2
Re: Aplicación que corre de forma "OCULTA" (proceso / servicio)

o era form1.hide.

no me recuerdo bien
__________________
"Cuando se adelanta un oponente, enfréntalo y salúdalo; si intenta retroceder, déjalo seguir su camino"
  #4 (permalink)  
Antiguo 20/12/2006, 09:07
 
Fecha de Ingreso: noviembre-2005
Mensajes: 751
Antigüedad: 18 años, 5 meses
Puntos: 13
Re: Aplicación que corre de forma "OCULTA" (proceso / servicio)

Hola

En el form load puedes poner
Código:
   Form1.visible=False
Con esto se ejecuta la aplicación en modo invisible, pero no como un servicio (si te refieres a servicio a los que están en Panel de Control / Herramientas administrativas / Servicios).

--Saludos--
  #5 (permalink)  
Antiguo 21/12/2006, 07:29
ositopicaron
Invitado
 
Mensajes: n/a
Puntos:
Re: Aplicación que corre de forma "OCULTA" (proceso / servicio)

Para hacer invisible tu aplicación, basta con hacer invisibles los formularios...

para eso hacés Form1.visible=False

como decían los muchachos anteriormente....


¿Para detectar si una aplcación "X" está activa necesito utilizar sockets ó en Windows puedo simplemente acceder a la lista de tareas en ejecución y buscar el string "Nombre del ejecutable" de la aplicación secundaria?
LAMENTABLEMENTE NO TENGO UNA RESPUESTA PARA ESA PREGUNTA....
  #6 (permalink)  
Antiguo 21/12/2006, 10:13
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Re: Aplicación que corre de forma "OCULTA" (proceso / servicio)

En vez de ocultar los Forms también se puede hacer:
App.TaskVisible = False

Creo q' había puesto en las FAQ's algo de como detectar si un proceso está activo...
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #7 (permalink)  
Antiguo 21/12/2006, 12:12
 
Fecha de Ingreso: diciembre-2004
Mensajes: 721
Antigüedad: 19 años, 4 meses
Puntos: 2
Re: Aplicación que corre de forma "OCULTA" (proceso / servicio)

Hola a todos y muchas gracias por sus respuestas!! :)

Al final, form1.visible = false no funcionó, tampoco taskvisible ! Pero descubri que me.visible = false resolvía el asunto. Ahora queda el segundo tema, que lo estoy buscando y si lo encuentro lo posteo asi lo tienen por ahi para cuando lo llegasen a necesitar.

Un saludo grande y gracias por las respuestas!
  #8 (permalink)  
Antiguo 22/12/2006, 03:24
 
Fecha de Ingreso: noviembre-2005
Mensajes: 751
Antigüedad: 18 años, 5 meses
Puntos: 13
Re: Aplicación que corre de forma "OCULTA" (proceso / servicio)

Hola

El siguiente código extraído del API-Guide escribe en el formulario el listado de todos los procesos, en realidad si sabes el nombre del ejecutable del programa puedes comprobar si se esta ejecutando. Simplemente copia todo el código en un proyecto nuevo y ejecutalo. Luego puedes adaptarlo a tus necesidades.

Código:
Const TH32CS_SNAPHEAPLIST = &H1
Const TH32CS_SNAPPROCESS = &H2
Const TH32CS_SNAPTHREAD = &H4
Const TH32CS_SNAPMODULE = &H8
Const TH32CS_SNAPALL = (TH32CS_SNAPHEAPLIST Or TH32CS_SNAPPROCESS Or TH32CS_SNAPTHREAD Or TH32CS_SNAPMODULE)
Const TH32CS_INHERIT = &H80000000
Const MAX_PATH As Integer = 260
Private Type PROCESSENTRY32
    dwSize As Long
    cntUsage As Long
    th32ProcessID As Long
    th32DefaultHeapID As Long
    th32ModuleID As Long
    cntThreads As Long
    th32ParentProcessID As Long
    pcPriClassBase As Long
    dwFlags As Long
    szExeFile As String * MAX_PATH
End Type
Private Declare Function CreateToolhelp32Snapshot Lib "Kernel32" (ByVal lFlags As Long, ByVal lProcessID As Long) As Long
Private Declare Function Process32First Lib "Kernel32" (ByVal hSnapShot As Long, uProcess As PROCESSENTRY32) As Long
Private Declare Function Process32Next Lib "Kernel32" (ByVal hSnapShot As Long, uProcess As PROCESSENTRY32) As Long
Private Declare Sub CloseHandle Lib "Kernel32" (ByVal hPass As Long)
Private Sub Form_Load()
    'KPD-Team 2000
    'URL: http://www.allapi.net/
    'E-Mail: [email protected]
    Dim hSnapShot As Long, uProcess As PROCESSENTRY32
    'Takes a snapshot of the processes and the heaps, modules, and threads used by the processes
    hSnapShot = CreateToolhelp32Snapshot(TH32CS_SNAPALL, 0&)
    'set the length of our ProcessEntry-type
    uProcess.dwSize = Len(uProcess)
    'Retrieve information about the first process encountered in our system snapshot
    r = Process32First(hSnapShot, uProcess)
    'set graphics mode to persistent
    Me.AutoRedraw = True
    Do While r
        Me.Print Left$(uProcess.szExeFile, IIf(InStr(1, uProcess.szExeFile, Chr$(0)) > 0, InStr(1, uProcess.szExeFile, Chr$(0)) - 1, 0))
        'Retrieve information about the next process recorded in our system snapshot
        r = Process32Next(hSnapShot, uProcess)
    Loop
    'close our snapshot handle
    CloseHandle hSnapShot
End Sub
--Saludos--
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 18:29.