Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Manipular Tab De Windows desde Delphi 7 (https://www.clubdelphi.com/foros/showthread.php?t=81371)

carlos gonzalez 08-11-2012 16:22:52

Manipular Tab De Windows desde Delphi 7
 
Hola amigos.

Tengo una duda de algo que no se si sea posible o si alguien lo hecho.

Tengo en una pc ejecutando dos aplicaciones visuales, desde windows si nosotros le damos en las teclas alt+Tab podemos cambiarnos de una aplicación a la otra de forma rapida.

Alguien sabe si es posible hacer esto desde delphi de modo que lo programe que por ejemplo cada 2 minutos este cambiando entre una aplicación y la otra.

Si alguien sabe si se puede hacer esto y lo puede compartir se los voy agradecer infinitamente.

Su amigo charless.

nlsgarcia 09-11-2012 00:52:17

carlos gonzalez,

Revisa estos links que tratan sobre el envío de teclas virtuales por medio de la API de Windows keybd_event en Delphi:
Revisa este código:
Código Delphi [-]
procedure TForm1.Button1Click(Sender: TObject);
var
   Window : hwnd; // Handle de la aplicación

begin

   // API FindWindow : Encuentra si esta activa en Windows una aplicación.
   Window := FindWindow('Notepad',nil);

   // API SetForegroundWindow : Cambia el foco de la aplicación activa en Windows
   if SetForegroundWindow(Window) = True then
      // API ShowWindow : Muestra en Foreground la aplicación seleccionada con SetForegroundWindow
      ShowWindow(Window, SW_SHOWNORMAL)
   else
      // Muestra un msg de error si la aplicación no esta áctiva en Windows
      MessageDlg('Notepad No Esta Activo', mtInformation,[mbOk], 0);

end;
El código anterior en Delphi 7 cambia el foco de la ventana activa en Windows por el de la aplicación que se establezca en FindWindow, creo que esto se adapta mejor a tu requerimiento.

Puedes adaptarlo a un control TTimer para cambiar entre aplicaciones de forma automática según el tiempo establecido.

Espero sea útil :)

Nelson.

carlos gonzalez 09-11-2012 18:03:53

Muchas gracias por el ejemplo, funciona muy bien asi como esta, midifique la parte Notepad por pantalla1, donde pantalla1 es el nombre de la aplicación(.exe) desarrollada en delphi 7 pero no la encuentra, ya la copiea a la ruta de system32, a windows pero no la encuentra, sabes a que se pudiera deber esto

nlsgarcia 09-11-2012 22:26:23

carlos gonzalez,

Realiza los siguientes cambios:
Código Delphi [-]
   // En la Aplicación-1 que activa el foco de la Aplicación-2.
   Window := FindWindow(nil,'Visual2');
Código Delphi [-]
   // En la Aplicación-2 que es activado su foco por la Aplicación-1.
   Application.Title := 'Visual2';
Te anexo un ejemplo de dos aplicaciones en Delphi 7, que activan su foco externamente según lo comentado en este tema en el siguiente link:
Espero sea útil :)

Nelson.


La franja horaria es GMT +2. Ahora son las 20:45:02.

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