Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Coloboración Paypal con ClubDelphi

 
 
Herramientas Buscar en Tema Desplegado
  #2  
Antiguo 28-01-2008
Avatar de aeff
aeff aeff is offline
Miembro
 
Registrado: oct 2006
Ubicación: Cuba, Guantánamo
Posts: 348
Poder: 20
aeff Va camino a la fama
saludos!!

me parece que no te funciona porque ese código que ejecutas no se encuentra dentro de la dirección de memoria del programa "Instalador" o de otro cualquiera al que intentas clickearle el button,

para lograr esto de esa *forma que intentas*, creo que debes inyectarte dentro de ese otro programa, eso de inyecciones es un poco graaaande y trabajoso, te presento una forma mas cómoda y sin complicarnos con direcciones de memorias u otra cosa:

Código Delphi [-]
procedure TForm1.Button1Click(Sender: TObject);
var
  hWnd, hBtn: Cardinal;
  btnPos: TWindowInfo;
  vCPosBefore: TPoint;
  X, Y: Integer;
begin

  hWnd := FindWindow(nil, 'Ejecutar');
  hBtn := FindWindowEx(hWnd, 0, 'Button', '&Examinar...');

  GetCursorPos(vCPosBefore);
  SetForegroundWindow(hWnd);

  if GetWindowInfo(hBtn, btnPos) = true then
    begin
      X := btnPos.rcClient.Left + ((btnPos.rcClient.Right - btnPos.rcClient.Left) div 2);
      Y := btnPos.rcClient.Top + ((btnPos.rcClient.Bottom - btnPos.rcClient.Top) div 2) ;
      SetCursorPos(X, Y);
      mouse_event(MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0);
      Sleep(0);
      mouse_event(MOUSEEVENTF_LEFTUP, 0, 0, 0, 0);
    end;

  // Para regresar a nuestra ventanita, claro, si lo deseas...
  SetCursorPos(vCPosBefore.x, vCPosBefore.y);
  SetForegroundWindow(Handle);
end;

que crees? abre la ventanita "Ejecutar" de Windows y pruébalo!!!

de todas formas, lo que intentabas hacer presionando espacio en el button, creo que antes debes pasarle el foco, y aún así, yo no lo haría de esa forma, por ejemplo, te muestro como lo haría si quisiera mandar a clickear un button de mi formulario:

Código Delphi [-]
  SendMessage(Form1.Handle, WM_COMMAND, 0, Button1. Handle);

** claro, que este código se ejecuta dentro de la misma dirección de memoria de mi programa... por eso me funciona ok!**


espero que te funcione!!!

saludos,
Responder Con Cita
 


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
SendMessage no me funciona gluglu API de Windows 6 08-10-2007 20:11:49
Cómo cerrar otra aplicacion desde mi aplicacion en Delphi 7 Gaby123 API de Windows 5 04-01-2007 22:44:51
Keypress en otra aplicacion? lookmydoom API de Windows 4 29-06-2006 04:30:05
SendMessage y dos instancias de una aplicación Aldo OOP 3 22-05-2006 19:43:12
Maximizar otra Aplicación Caro API de Windows 2 05-12-2005 13:11:15


La franja horaria es GMT +2. Ahora son las 22:57:24.


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