Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   API de Windows (https://www.clubdelphi.com/foros/forumdisplay.php?f=7)
-   -   Iniciar programa (https://www.clubdelphi.com/foros/showthread.php?t=24489)

triskel 23-08-2005 12:47:08

Iniciar programa
 
Buenas,

Tengo un programa que arranca al inicio de windows. PAra eso lo tengo en el Regedit.
Mi problema es que mi programa arranca antes de que Windows haya acabado de cargar todos los demas procesos y programas.
¿Hay alguna forma de detectar si Windows a acabado de arrancar?

Gracias

Triskel

roman 23-08-2005 16:31:07

Cita:

Empezado por triskel
¿Hay alguna forma de detectar si Windows a acabado de arrancar?

Yo creo que esto es algo ambiguo. ¿Cuándo puede decirse que Windows ha terminado el arranque (hay veces que parece que durante toda la sesión sigue arrancando)?

Lo único que por el momento se me ocurre es detectar el mensaje TaskBarCreated que manda el sistema cuando ya se ha creado la barra de tareas con lo que de alguna manera puede decirse que el shell ya está listo para trabajar.

Pero sería interesante que nos dieras más detalles de qué es lo que hace tu aplicación para requerir que Windows ya esté completamente cargado.

// Saludos

Crandel 23-08-2005 18:37:08

pone un acceso directo en el inicio del menu de programas.

Este se carga despues que registry.

triskel 24-08-2005 08:15:04

Roman,

Gracias por la info, ahora lo probaré.

En realidad lo que tiene que arrancar es un programa Java compilado en un JAR.
El problema que tengo es que si en el Regedit arranco el JAR, no le da tiempo a levantar todos los paquetes Java necesario, por eso quiero hacer un programa Delphi que arranque en el inicio de la sesion y sea el que ejecute el programa Java, una vez este todo listo.

Saludos

triskel 24-08-2005 08:58:26

Roman,

¿Como hago para interceptar el mensaje TaskBarCreated? Estoy un pelin perdido :confused:


Gracias

marceloalegre 24-08-2005 14:32:49

Solución de Roman
 
Yo tenia exactamente ese problema triskel. Aqui tienes la genial solucion de controlar taskbarcreated by Roman:

http://www.clubdelphi.com/foros/showthread.php?t=22018

cualquier cosa, pregunta que yo ya he implementado esto por un inconveniente dado que un programa se "ejecutaba antes de tiempo" (para lo que yo necesitaba)

Saludos!

roman 24-08-2005 19:49:00

Aunque posiblemente baste con la solución que propone Crandel. Imagino que las aplicaciones que se ejecutan desde el menú de inicio lo hacen una vez que ya está cargado el shell y por tanto después del TaskBarCreated.

// Saludos

triskel 25-08-2005 08:50:48

Gracias por vuestra ayuda,

pero hoy ando algo pez, tengo un catarro del copon y no me doy centrado.
En el enlace que me da Kanvictor, roman dice que tengo que registrar el mensaje al iniciar mi aplicacion, es en el DPR??
En que unit esta el RegisterWindowsMessage??


Otra vez, gracias por todo!!


Triskel

dec 25-08-2005 10:09:58

1 Archivos Adjunto(s)
Hola,

En realidad es "RegisterWindowMessage" (sobra la "s" en Windows) y es por eso que no localizabas la unidad, la cual es "Windows.pas". Creo, en todo caso, que con el ejemplo que adjunto podrás comenzar a hacer pruebas.

dec 25-08-2005 10:27:34

Hola,

Me quedan ciertas dudas sobre si registrar el mensaje en el evento "OnCreate", como hago en el ejemplo que adjunté arriba o si sería mejor hacerlo en la cláusula "initialization" de la unidad del formulario principal... Supongo que unas pruebas podrían darnos la mejor opción, si ya no es que alguien aclara dónde sería más conveniente registrar el mensaje que nos ocupa.

marceloalegre 25-08-2005 15:01:31

Cita:

Empezado por roman
Aunque posiblemente baste con la solución que propone Crandel. Imagino que las aplicaciones que se ejecutan desde el menú de inicio lo hacen una vez que ya está cargado el shell y por tanto después del TaskBarCreated.

// Saludos

Claaroo... es asi, en mi caso era muy distinto porque estaba ejecutando un servicio, que hacia "varias gracias" entre ellas ejecutar una aplicacion que era trayapp y si no la ejecutaba despues de explorer.exe funcionaba mal.

Saludos!.

marceloalegre 25-08-2005 15:04:34

Cita:

Empezado por dec
Hola,

Me quedan ciertas dudas sobre si registrar el mensaje en el evento "OnCreate", como hago en el ejemplo que adjunté arriba o si sería mejor hacerlo en la cláusula "initialization" de la unidad del formulario principal... Supongo que unas pruebas podrían darnos la mejor opción, si ya no es que alguien aclara dónde sería más conveniente registrar el mensaje que nos ocupa.

Realmente no se donde seria esto mas eficiente, yo he aplicado esto en 2 proyectos distintos, y siempre me maneje registrando en OnCreate...,, pero alguien con mayor base teorica probablemente pueda decirnos lo mas acertado... (lo esperamos :) )

saludos.

Crandel 25-08-2005 20:46:58

el código que esta en la sección initialization es la primera que se ejecuta cuando se incia un programa.

En cambio en el create del formulario, es cuando se crea el formulario y por ende posterior a initialization.

pero igualmente no hay grandes diferencias de donde se registra.

triskel 29-08-2005 08:48:19

Gracias a todos por la ayuda!!

Al final ya lo tengo y me funciona perfecto!!!


Triskel

dec 29-08-2005 09:44:05

Hola,

triskel, no estaría demás que indicaras cómo al cabo solucionaste el problema, qué camino seguiste de los propuestos, si tomaste alguno alternativo, etc. Fundamentalmente, por si alguien se topa con el mismo inconveniente que tú y lee este Hilo tenga una idea de cómo tratar el tema hasta llegar a una solución "perfecta" como la que implementaste. Muchas gracias ;)


La franja horaria es GMT +2. Ahora son las 05:10:59.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi