Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   C++ Builder (https://www.clubdelphi.com/foros/forumdisplay.php?f=13)
-   -   Como Mover Ventana Externa al programa (https://www.clubdelphi.com/foros/showthread.php?t=91708)

Snaked 05-04-2017 10:04:59

Como Mover Ventana Externa al programa
 
como puedo mover la ventana de un programa abierto con ShellExecute a las coordenadas que yo quiera de la pantalla??? por ejemplo la 0,0

Thankss

dec 05-04-2017 12:06:19

Hola,

Creo que podrías usar la función SetWindowPos.

Snaked 05-04-2017 12:23:11

hola ..... la cuestion es que no se como obtener el Handle de la ventana

Neftali [Germán.Estévez] 05-04-2017 12:36:17

Cita:

Empezado por Snaked (Mensaje 515194)
hola ..... la cuestion es que no se como obtener el Handle de la ventana

El ShellExecute te devuelve un identificador del proceso. Si no me equivoco a partir de ese handle podrías explorar las ventanas que le pernetecen.
La otra opción (si tienes los datos necesarios -título o clase-) es buscar el Handle de la ventana que quieres mover utilizando FindWindows.

De ambas funciones seguro que encuentras ejemplos en el foro (si buscas por el nombre de la función).

Snaked 05-04-2017 14:55:09

lo hago asi pero aunque lo ejecuta sin errores.......no mueve la ventana

Código PHP:

HWND manejador;

  
ShellExecute(Handle,  // Handle de la fenêtre parent
                 
"open"// Action à effectuer
                 
"JumpLittle.exe"// Fichier
                 
""// Paramètres
                 
""// Répertoire par défaut
                 
SW_SHOWDEFAULT);

  
Sleep(4300);
  
manejador FindWindow(NULL,"JumpLittle.exe");
  
SetWindowPos(manejadorHWND_TOPMOST00600550SWP_SHOWWINDOW); 


Snaked 05-04-2017 15:28:26

vale, ya he conseguido moverla......

Neftali [Germán.Estévez] 05-04-2017 16:35:47

Cita:

Empezado por Snaked (Mensaje 515201)
vale, ya he conseguido moverla......

El segundo parámetro es incorrecto:

Código Delphi [-]
manejador = FindWindow(NULL,"JumpLittle.exe");

Estaría bien que pusieras la solución final, por si alguien con el mismo problema llega a este hilo.

Snaked 06-04-2017 12:13:02

la solucion final correcta (por lo menos la que funciona en mi programa) es esta Neftali:

Código PHP:

  manejador FindWindow(NULL,"Jumpstart Little for Dumpper");
  
SetWindowPos(manejadorHWND_TOPMOST00460300SWP_SHOWWINDOW);
  
ShowWindow(manejadorSW_SHOWNORMAL); 

se me habia olvidado llamar al ShowWindow para que se pusiese en portada

esta es una captura del programa que estoy haciendo:



La franja horaria es GMT +2. Ahora son las 14:18:54.

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