Hola Raymond.
Andaba mirando los mensajes pasados y encontré el tuyo.
Espero que no sea demasiado tarde para responder, pero creo que tengo algo que te podría ayudar.
Lo que solicitas puede hacerse como lo indico a continuación.
Básicamente, el código que te entrego seguidamente utiliza 2 APIs para registrar el proceso de tu aplicación como una del sistema.
Para hacerlo, simplemente, pega el código siguiente en un módulo (yo lo llamo mdRegService.BAS):
'----------------------------------------------------------------------------
'MÓDULO mdRegService.BAS
'----------------------------------------------------------------------------
'---------------------------
'Nombre: mdRegService.BAS
'Descripción: Módulo simple que permite el registro/desregistro de
'un proceso como servicio del sistema.
'Creador: Zoto - www.lawebdelprogramador.com - Foro Visual Basic
'AVISOS: Al registrar un proceso como Servicio del sistema, pasa a ser desapercibido por el Administrador de Tareas de Windows
'---------------------------
'---------------
'APIs
'---------------
Private Declare Function GetCurrentProcessId Lib "kernel32" () As Long 'Devuelve la Identidad del proceso del programa
Private Declare Function RegisterServiceProcess Lib "kernel32" (ByVal dwProcessID As Long, ByVal dwType As Long) As Long 'Registra/desregistra un proceso como Servicio dada su Identidad y la operación a llevar a cabo (0-> Desregistrar (Proceso) 1-> Registrar (Servicio))
'---------------
'Constantes (de la API RegisterServiceProcess)
'---------------
'Parámetro dwType:
Const RSP_SIMPLE_SERVICE = 1 'Registra proceso
Const RSP_UNREGISTER_SERVICE = 0 'Desregistra proceso
'---------------
'Variables
'---------------
Dim prId As Long 'Almacena la Identidad del proceso que representa el programa
'---------------
'Funciones
'---------------
'Registra el programa como Servicio del sistema dando su Identidad.
'Devuelve el valor devuelto por la API RegisterServiceProcess
Public Function RegMeService() As Long
prId = GetCurrentProcessId()
RegMeService = RegisterServiceProcess(prId, RSP_SIMPLE_SERVICE)
End Function
'Desregistra el programa y hace que deje de ser Servicio, dando su Identidad.
'Devuelve el valor devuelto por la API RegisterServiceProcess
Public Function UnRegMeService() As Long
prId = GetCurrentProcessId()
UnRegMeService = RegisterServiceProcess(prId, RSP_UNREGISTER_SERVICE)
End Function
'----------------------------------------------------------------------------
'MÓDULO mdRegService.BAS
'----------------------------------------------------------------------------
A partir de aquí, tan solo haz lo siguiente en cualquier parte del código (preferentemente en el Form_Load del Formulario principal o en el procedimiento Main):
'__________________________________código form/main
'Para registrar tu aplicación como proceso del sistema:
RegMeService
'Para quitar tu aplicación de su registro como proceso del sistema:
UnRegMeService
'__________________________________código form/main
En teoria, este código debería funcionarte.
Si no lo hace de manera correcta, escribe aquí e intentaré resolver el problema.
Espero que te ayude. Hasta otra.
Zoto