Array
(
)

Recuperar programa que nao aparece na barra de tarefas?

Adriano_servitec
   - 28 nov 2005

Ola amigos, gostaria de saber se tem como recuperar o meu projeto apos esse comando:

procedure TForm1.ApplicationEvents1Minimize(Sender: TObject);
var

H : HWnd;

begin

H := FindWindow(Nil,´Hook´);

if H <> 0 then ShowWindow(H,SW_HIDE);
end;

Usei um applicationevents e no events onminimize digitei esse comando acima, ai o que ele faz eh na hora em que clico no sinal minimizar o programa desaparece da barra de tarefas, mais dai a pergunta, como faço para visualiza-lo novamente, pensei em alguma tecla de atalho tipo F10, mais nao obtive sucesso usando ele no events onkeyup nem no onkeydown.

Alguem sabe como posso recuperar meu projeto novamente pq o objetivo dele ficar escondido eh trabalhar em segundo plano no windows, mais com a opçao de recupera-lo novamente.

Entao no events onkeydow fiz esse comando, mais nao funcionou
procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
case Key of
vk_f10: form1.show;
vk_f12: Form1.visible:=true;
end;
end;

Grato pela ajuda de todos
Adriano


Siam
   - 28 nov 2005

Crie uma tecla de atalho pela função RegisterHotKey.


Adriano_servitec
   - 30 nov 2005

Como assim amigo, nao entendi como fazer, pode ser + especifico?


Grato pela ajuda
Adriano


Siam
   - 30 nov 2005

A função RegisterHotKey registra teclas de atalho no Windows. Então quando a tecla for pressionada, o Windows envia uma msg do tipo WM_HotKey p/ a aplicação que a registrou não importando se ela está em foco ou não; com isso vc sempre sabe quando a tecla foi pressionada.


Adriano_servitec
   - 01 dez 2005

Obrigado amigo pela dica

Abraços
T+


Adriano_servitec
   - 01 dez 2005

Bom como essa funçao faz o que estou precisando entao resolvi deixar um exemplo aqui (no caso de alguem um dia precisar:

no Form Principal você coloca

private
procedure Hot_Key(var Msg:TWMHotKey); message WM_HOTKEY;

procedure TForm1.FormCreate(Sender: TObject);
begin
RegisterHotKey(Handle, 1, MOD_ALT, VK_F5);
RegisterHotKey(Handle, 2, MOD_ALT, VK_F6);
RegisterHotKey(Handle, 3, MOD_CONTROL, VK_F5);
end;

procedure TForm1.Hot_Key(var Msg:TWMHotKey);
begin
if (Msg.HotKey = 1)
then ShowMessage(´Tecla Alt - F5 pressionada´);
IF (Msg.HotKey = 2)
then ShowMessage(´Tecla Alt - F6 pressionada´);
IF (Msg.HotKey = 3)
then WinExec(´calc.Exe´,Sw_ShowNormal)
end;


Obrigado siam
Sua dica foi de grande utilidade no meu projeto
T+


Siam
   - 01 dez 2005

Não sei se ao término da aplicação o Windows desregistra automaticamente, mas eu sempre utilizo UnregisterHotKey no onDestroy.