Ir al contenido


Foto

Timer para activar programa y siempre este al frente y activo


  • Por favor identifícate para responder
1 respuesta en este tema

#1 jorgeeyv

jorgeeyv

    Newbie

  • Miembros
  • Pip
  • 1 mensajes

Escrito 06 marzo 2018 - 05:22

Hola amigos, tengo un programa que al presionar la tecla (-) ``VK_SUBTRACT`` presiona un boton,

cuando la aplicacion pasa a segundo plano, no esta activa, no me funciona. tengo su fsStayOnTop, 

esto hace que siempre este visible, pero no activa.

cave mensionar que la tecla (-) no la uso para nada, solo para esta accion.

la idea es que el timer traiga al frente el programa en el intervalo mas pequeño, asi siempre este al frente,

el tamaño en pixeles de la aplicacion es muy pequeño, por eso no estorba en la pantalla y siempre esta visible.

podran ayudarme con esto?

ya sea con un timer o como ustedes piensen...

uso delphi 10.2.2 y win 10


  • 0

#2 escafandra

escafandra

    Advanced Member

  • Administrador
  • 4.107 mensajes
  • LocationMadrid - España

Escrito 07 marzo 2018 - 02:35

Bienvenido a nuestra Comunidad.

 

No tienes que crear timers, basta con usar la API RegisterHotKey para registrar una tecla o combinación que captará siempre tu aplicación. Mira este ejemplo simple que restaura (si se minimizó) y tre al frente tu app al presionar VK_SUBTRACT:


delphi
  1. unit Unit1;
  2.  
  3. interface
  4.  
  5. uses
  6. Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  7. Dialogs, ExtCtrls;
  8.  
  9. type
  10. TForm1 = class(TForm)
  11. procedure FormCreate(Sender: TObject);
  12. procedure HotKey(var Message: TMessage); message WM_HOTKEY;
  13. procedure FormClose(Sender: TObject; var Action: TCloseAction);
  14. end;
  15.  
  16. var Form1: TForm1;
  17.  
  18. implementation
  19.  
  20. {$r *.dfm}
  21.  
  22. procedure TForm1.FormCreate(Sender: TObject);
  23. begin
  24. RegisterHotKey(Handle, 1, 0, VK_SUBTRACT);
  25. end;
  26.  
  27. procedure TForm1.HotKey(var Message: TMessage);
  28. begin
  29. if Message.WParam = 1 then
  30. begin
  31. Application.Restore;
  32. Application.BringToFront;
  33. Windows.Beep(1000, 100);
  34. end;
  35. end;
  36.  
  37. procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
  38. begin
  39. UnregisterHotKey(Handle, 1);
  40. end;
  41.  
  42. end.

Saludos.


  • 2




IP.Board spam blocked by CleanTalk.