Sim, quero exibir o menu e quero q ele fique ativo!!!

mas naum deu certo com isso aih naum, ateh pq o SetForegroundWindow eu jah 
tinha tentado...

Afffff... to a tres dias tentando isso aki... fiz dar certo uma vez, mas nem 
sei como...


----- Original Message ----- 
From: "Demian Lessa" <[EMAIL PROTECTED]>
To: <delphi-br@yahoogrupos.com.br>
Sent: Thursday, May 12, 2005 10:06 AM
Subject: Re: [delphi-br] Mensagem


> Ah! Pensei que você quisesse processar a mensagem!
>
> Bem, de fato o que você fala é um problema no Windows. Quando você menos
> espera, aquela janela que você achava, por um motivo ou por outro, que
> deveria ficar ativa depois do processamento de uma rotina sua, não fica!
>
> Tive esse problema quando codifiquei nos meus aplicativos a lógica para
> que apenas uma instância ficasse no ar. Quando a segunda instância era
> executada, ela encontrava a primeira instância no ar, a tornava a janela
> ativa e saia. Muitas vezes o efeito era o que você descreve. Resolvi o
> problema com dois comandos:
>
>   SetForegroundWindow(hPai);
>   ShowWindow(hPai, SW_RESTORE);
>
> Com a diferença que meu "hPai" referia-se à janela do aplicativo mesmo
> (TApplication) e não a alguma janela (TForm) do aplicativo. Havia também
> tentado o método de TApplication antes, sem sucesso. Não sei se isso vai
> ajudar...
>
> No seu caso, você está exibindo um menu e quer que o menu fique ativo?
> Não sei se isso irá resolver seu problema, mas pode ser o início de sua
> solução. Talvez você queira dar uma olhada na API do TrayIcon para ver
> se tem algo específico...
>
> Cordialmente,
>
> Demian Lessa
> Salvador - Brasil
>
> Filipe wrote:
>> damian, poderia me dizer a fonte desta Informação?
>>
>> naum está dando certo aki...
>>
>> é q é o seguinte: tenho uma aplicação que fica no tary, tipo, num 
>> trayIcon,
>> escondida, e q gera uma dll (que starta um Hook de teclado) para que qdo 
>> eu
>> apertar "Espaço", por exemplo, mesmo q minha aplicação naum estiver 
>> ativa,
>> ele de um popUp no popUpMenu que está neste tray Icon.
>>
>> Isso está dando certo, mas acontece que, as vezes consigo dar o popUp mas
>> naum consigo mexer no menu, será q tah dando pra entender? Isso porque 
>> minha
>> aplicação está "atrás" (as vezes atrás do próprio explorer)...
>>
>> faço assim pra dar um popUp:
>>
>>   if (Msg.wParam = 32) then  // se a dll mandar um espaço...
>>   begin
>>     Application.Restore;
>>     Application.BringToFront;
>>     Self.BringToFront;
>>     HPai := FindWindow('TfcServi', 'fcServi');  // variavel HPai: THandle
>>     SetForegroundWindow(HPai);
>>     SetActiveWindow(HPai);
>>     GetTopWindow(HPai);
>>     PostMessage(hPai, WM_ACTIVATE, 0, 0);
>> //    PostMessage(hPai, WM_SETFOCUS, 0, 0);
>> //    PostMessage(hPai, WM_SHOWWINDOW, 0, 0);
>>     fDataM.PmTray.Popup(Screen.Width, GetSystemMetrics(SM_CYFULLSCREEN) +
>> 20); // o PopUp tem que ser o último comando, caso contrário ele segura o
>> processamento até ser fechado.
>>   end
>>
>> tp, jah tentei isso, com varias combinações, e outros comandos tb...
>>
>> bom... esta minha aplicação fica escondida do "Alt + Tab", mas para 
>> motivos
>> de testes, fiz ela ficar visível, e reparei que se eu der um "Alt+ Tab"
>> nela, ela volta a ficar ativa. Bom, entaum precisaria de uma rotina que
>> simule o "Alt + Tab"(tentei o "PostMessage(hPai, WM_ACTIVATE, 0, 0), mas
>> naum deu certo.")... Será q deu pra entender???
>>
>>
>> Obrigado pela atenção.
>>
>> Filipe.
>
>
> -- 
> <<<<< FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM >>>>>
>
> Para ver as mensagens antigas, acesse:
> http://br.groups.yahoo.com/group/delphi-br/messages
>
> Para falar com o moderador, envie um e-mail para:
> [EMAIL PROTECTED] ou [EMAIL PROTECTED]
>
> Links do Yahoo! Grupos
>
>
>
>
>
>
>
> 




-- 
<<<<< FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM >>>>>

Para ver as mensagens antigas, acesse:
 http://br.groups.yahoo.com/group/delphi-br/messages

Para falar com o moderador, envie um e-mail para:
 [EMAIL PROTECTED] ou [EMAIL PROTECTED]
 
Links do Yahoo! Grupos

<*> Para visitar o site do seu grupo na web, acesse:
    http://br.groups.yahoo.com/group/delphi-br/

<*> Para sair deste grupo, envie um e-mail para:
    [EMAIL PROTECTED]

<*> O uso que você faz do Yahoo! Grupos está sujeito aos:
    http://br.yahoo.com/info/utos.html

 


Responder a