Page 1 of 1

twcapture y servicio...

Posted: Thu Nov 10, 2005 4:58 am
by Francisco Horta
Alguien tiene la clase twcapture para 32 bits que me la pudiera facilitar, y sabarn como poner un programa de harbour en modo servicio con win xp? lo que quiero es cargar el programa y cerrar la ventana por ejemplo cuando carguen el ares, el limewire, el messenger,etc etc.. o alguien tendra algun ejemplo lo agradeceria mucho...
Salu2
Paco

generico

Posted: Thu Nov 10, 2005 9:38 am
by Paco Garcia
Hola Paco

Capturar una ventana mas o menos es averiguar su hWnd y enviarle mensajes.

Una de las formas de obtener el handle es utilizar FindWindow

Por ejemplo:

Code: Select all


local cText
local hWnd := FindWindow( 0, <titulo_de_la_ventana_a_capturar>)
if hWnd == 0
   MsgInfo( "No encuentro " + <titulo_de_la_ventana_a_capturar> )
   return 0
endif

SetWindowText( hWnd, "nuevo titulo" ) // cambiamos el titulo de la ventana
MoveWindow( hWnd, 20, 20, 500,500, .t.) // mueve la ventana

SendMessage( hWnd, WM_CLOSE,0,0)

Asi todo lo que quieras hacer que se pueda hacer con funciones del api y que acepten un handle de ventana.

Un saludo

Posted: Tue Feb 26, 2008 7:20 pm
by JmGarcia
Francisco Horta wrote:...y sabarn como poner un programa de harbour en modo servicio con win

xp?
Estas son mis notas de los cursos de Donosti 2007:

Se puede hacer de 2 formas, la gratis y complicada, o la de facil y de pago.

La gratis y complicada:
Se necesitan dos programas del Kit de recursos de Microsoft: instsrv.exe Instalador del servicio http://www.auditmypc.com/process/instsrv.asp srvany.exe (rvany.exe) Utilidad de aplicaciones como servicio

http://www.auditmypc.com/process/srvany.asp

Abres una ventana de ms-dos y le pones: instsrv.exe "Nombre del Servicio" srvany.exe Es imprescindible pasar la ruta donde esten ambos ejecutables.

Una vez hecho esto abres el regedit y te vas a: HKLM\system\CurrentControlSet\Services y verás que se ha creado una clave "Nombre del Servicio"(si abres la consola de servicios verás que ya se ve en la lista); haz click en el arbol y crea una subclave llamada "Parameters", dentro de ella un valor de cadena llamado "Application" al que de contenido le pones Ruta\Nombre.exe. Ya tienes creado el servicio.
De esta manera se crea con arranque automático y lanzado por cuenta del sistema; te metes en Panel de

Control / Herramientas administrativas / Servicios y cambias lo que haga falta

Ten en cuenta que dentro de tu programa debes hacer _ necesarios para indicar "rutas absolutas" en las operaciones como USE, FILE(), etc, es decir, tienes que indicar las rutas completas a donde estan los archivos que deseas leer y/o escribir, ya que el programa EXE, al ser un servicio, no esta corriendo en realidad en la carpeta donde esta instalado, digamos que esta "en el limbo" de la computadora, ahi, flotando en el aire, sin una unidad de disco a la cual hacer referencia.

La forma facil y de pago:

Mirate estos programas de pago que convierten cualquier EXE en servicio:

Firedaemon ($ 35.00 USD)
http://www.firedaemon.com/

Application as service 1.0 ($ 79.00 USD)
http://www.eltima.com/products/application-as-service/

Service Mill ($79.00 USD)
http://www.activeplus.com/us/products/smill/

Serve All ($49.00 usd)
http://www.transsoft.com/view_content.asp?ID=25

Mas información en http://freyes.svetlian.com/tips/ejecuta ... rvicio.htm