Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > API de Windows
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 22-01-2010
Avatar de Casimiro Noteví
Casimiro Noteví Casimiro Noteví is offline
Merodeador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.696
Poder: 10
Casimiro Noteví Tiene un aura espectacularCasimiro Noteví Tiene un aura espectacular
Lo he quitado del 'OnCreate' y lo he pasado al 'OnActivate', le he añadido para que busque en el directorio donde está el ejecutable y ¡¡¡funciona!!!

Código:
procedure TForm1.FormActivate(Sender: TObject);
begin
  regedit(1);
  ShellExecute(Handle, '', PChar(ExtractFilePath(ParamStr(0))+'\gg.jpg'), '', '', SW_SHOWNORMAL);
end;
Responder Con Cita
  #2  
Antiguo 22-01-2010
Avatar de rgstuamigo
rgstuamigo rgstuamigo is offline
Miembro
 
Registrado: jul 2008
Ubicación: Santa Cruz de la Sierra-Bolivia
Posts: 1.646
Poder: 20
rgstuamigo Va por buen camino
Arrow

Bueno, aunque parece que Casimiro lo solucionó, solo una tengo una observacion a tu codigo y es este cuestionamiento:¿Por que cada ves que corre tu aplicacion lo registras en los registros de windows(autorun)?
¿Acaso no bastaria con registrarla una sola ves y ya?. Supongo que cada ves que se registra algo en los registros de Windows, el Sistema Operativo lo que hace es tomar en cuenta eso sólo la siguiente ves que se ejecute, es decir al Reiniciarse de nuevo(de ahí que cada ves que instalamos un programa, Windows nos pide que reiniciemos, cosa que segun he visto no sucede con Linux,pues ya diran los linuseros ), pero segun tu codigo, al reiniciarse de nuevo, pues nuevamente registra(Aunque en la misma Key) a tu aplicacion, y es un ciclo que se repite nuevamente....
Quisas lo que debieras hacer es: Antes de registrar tu aplicacion en los registros de Windows, primero deberias verificar si ya antes no se había registrado, para no estar nuevamente registrando..
Pruebalo...
__________________
"Pedid, y se os dará; buscad, y hallaréis; llamad, y se os abrirá." Mt.7:7

Última edición por rgstuamigo fecha: 22-01-2010 a las 16:26:00.
Responder Con Cita
  #3  
Antiguo 22-01-2010
Avatar de Casimiro Noteví
Casimiro Noteví Casimiro Noteví is offline
Merodeador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.696
Poder: 10
Casimiro Noteví Tiene un aura espectacularCasimiro Noteví Tiene un aura espectacular
Porque en linux no existe (menos mal) el registro de windows, ni el registro de linux

En linux cuando ejecutas un programa, éste mira su configuración y listo, no hace falta reiniciar tras una instalación o actualización.
Responder Con Cita
  #4  
Antiguo 22-01-2010
Avatar de rgstuamigo
rgstuamigo rgstuamigo is offline
Miembro
 
Registrado: jul 2008
Ubicación: Santa Cruz de la Sierra-Bolivia
Posts: 1.646
Poder: 20
rgstuamigo Va por buen camino
Arrow

Cita:
Empezado por Casimiro Notevi Ver Mensaje
Porque en linux no existe (menos mal) el registro de windows, ni el registro de linux

En linux cuando ejecutas un programa, éste mira su configuración y listo, no hace falta reiniciar tras una instalación o actualización.
Waooooh , Casimiro...te las sabes todas.....
Ya esta todo apuntado..ahora lo entiendo...
__________________
"Pedid, y se os dará; buscad, y hallaréis; llamad, y se os abrirá." Mt.7:7
Responder Con Cita
  #5  
Antiguo 22-01-2010
Avatar de Chris
[Chris] Chris is offline
Miembro Premium
 
Registrado: abr 2007
Ubicación: Jinotepe, Nicaragua
Posts: 1.678
Poder: 21
Chris Va por buen camino
Cita:
Empezado por rgstuamigo Ver Mensaje
Supongo que cada ves que se registra algo en los registros de Windows, el Sistema Operativo lo que hace es tomar en cuenta eso sólo la siguiente ves que se ejecute, es decir al Reiniciarse de nuevo(de ahí que cada ves que instalamos un programa, Windows nos pide que reiniciemos, cosa que segun he visto no sucede con Linux,pues ya diran los linuseros )
Cuando cambias el registro no es necesario que el sistema se reinicie. Basta que lo haga la rutina que necesita los datos de X registro. Cuando es necesario un reinicio del sistema en Windows es porque alguna actualización o instalación de un programa necesita que las nuevas configuraciones de un servicio clave (principalmente) del sistema sean reiniciados. También cuando se necesita hacer un patch en archivos de programas que están abiertos y que por estabilidad del sistema no pueden detenerse como el Kernel o otro archivo del núcleo.

Saludos.
__________________
Perfil Github - @chrramirez - Delphi Blog - Blog Web
Responder Con Cita
  #6  
Antiguo 22-01-2010
Avatar de rgstuamigo
rgstuamigo rgstuamigo is offline
Miembro
 
Registrado: jul 2008
Ubicación: Santa Cruz de la Sierra-Bolivia
Posts: 1.646
Poder: 20
rgstuamigo Va por buen camino
Arrow Ok...

Apuntado..tambien.. Chris...
Saludos...
__________________
"Pedid, y se os dará; buscad, y hallaréis; llamad, y se os abrirá." Mt.7:7
Responder Con Cita
  #7  
Antiguo 22-01-2010
Avatar de bosster_018
bosster_018 bosster_018 is offline
Miembro
 
Registrado: nov 2009
Ubicación: Bolivia
Posts: 127
Poder: 17
bosster_018 Va por buen camino
Solucionado

Amigo Casimiro... Perdón quise decir: Moderador CasimiroNotevi

El problema lo arreglaste totalmente. Pero no con poner el código en el OnAtivate del formulario, sino con esta parte:

Código Delphi [-]
ShellExecute(Handle, '', PChar(ExtractFilePath(ParamStr(0))+'\gg.jpg'), '', '', SW_SHOWNORMAL);

No se porque razón es que si uno no agrega el Path para ejecutar un archivos o mejor dicho localizar el archivo directamente como lo he escrito en el ejemplo:

Código Delphi [-]
ShellExecute(Handle,nil,('GG.JPG'),'','',SW_Shownormal);

No se ejecuta normalmente al iniciarse en Windows, pero sí al ejecutarlo manualmente

Parece que hace la diferencia al agregar "PChar(ExtractFilePath(ParamStr(0))+'\gg.jpg')"
en vez de poner directamente nombre del archivo que queremos localizar en ese momento (asumiendo que está en el mismo directorio)

Si lo esciribmos en el FormCreate y en el Botón con lo agregado anteriormente. Este ya puede ejecutarse normalment al iniciarse en Windows, osea FUNCIONA

Incluso se resolvió lo escrito anteriormente en este hilo:

realmente es necesario especificar el path?

La respuesta sería: SI

También les informo que con esa simple pero valiosa ayuda que me brindaron. pude terminar mi proyecto pues ya incluí el Path en la sentencia que fallaba al autoejecutarse al iniciar Windows.

MUCHAS GRACIAS amigos del ClubDelphi

La verdad... Ustedes ayudan bastante...
Perdonen si da chiste lo que voy a decir... Pero

USTEDES SON UNOS BENDITOS GENIOS


Saludos.. Y recuerden agregar el path aunque sea mas trabajoso.
Responder Con Cita
  #8  
Antiguo 22-01-2010
Avatar de Casimiro Noteví
Casimiro Noteví Casimiro Noteví is offline
Merodeador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.696
Poder: 10
Casimiro Noteví Tiene un aura espectacularCasimiro Noteví Tiene un aura espectacular
Cita:
Empezado por bosster_018 Ver Mensaje
Amigo Casimiro... Perdón quise decir: Moderador CasimiroNotevi
Sigo siendo casimiro


Cita:
Empezado por bosster_018 Ver Mensaje
USTEDES SON UNOS BENDITOS GENIOS
Genios, sí, aquí hay algunos genios, pero yo no, lo único que tengo es 24 años programando y el email de quien conoce las respuestas
Responder Con Cita
  #9  
Antiguo 22-01-2010
Avatar de Chris
[Chris] Chris is offline
Miembro Premium
 
Registrado: abr 2007
Ubicación: Jinotepe, Nicaragua
Posts: 1.678
Poder: 21
Chris Va por buen camino
Cita:
Empezado por Casimiro Notevi Ver Mensaje
Lo he quitado del 'OnCreate' y lo he pasado al 'OnActivate', le he añadido para que busque en el directorio donde está el ejecutable y ¡¡¡funciona!!!
El problema con el Evento OnActivate es que el código contenido será ejecutado cada vez que el formulario recupere el foco, además que se ejecuta cuando se abre la ventana.

Sinceramente es algo extraño esto. Será algún bug en la VCL? Veo muy díficil que el problema sea de Windows porque los eventos aquí involucrados datan de las primeras versiones de Windows y no creo que en tanto tiempo alguien no halla descubierto un problema como este.
__________________
Perfil Github - @chrramirez - Delphi Blog - Blog Web
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Problema con aplicación MDI DrkMgc Varios 6 22-12-2008 20:26:39
Problema con aplicación Dark_RavenM Varios 4 27-02-2008 05:10:40
Problema con Aplicacion MDI Thales OOP 7 19-08-2005 15:31:07
Problema con mi aplicación JerS Varios 2 18-07-2005 16:33:51
Problema con aplicacion MDI wallesis OOP 5 03-01-2004 11:17:28


La franja horaria es GMT +2. Ahora son las 21:31:35.


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