Jump to content


Photo

Timer para activar programa y siempre este al frente y activo


  • Please log in to reply
1 reply to this topic

#1 jorgeeyv

jorgeeyv

    Newbie

  • Miembros
  • Pip
  • 1 posts

Posted 06 March 2018 - 05:22 PM

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
  • 4107 posts
  • LocationMadrid - España

Posted 07 March 2018 - 02:35 PM

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.