GARANTIR DESCONTO

Fórum Definir foco para outra aplicação #284857

15/06/2005

0

Colegas,

Alguem sabe como definir o foco para outra aplicação?.


Sergiomatos

Sergiomatos

Responder

Posts

16/06/2005

Nildo

Você pode usar a API [b:12362a4bfd]SetForegroundWindow[/b:12362a4bfd] com o Handle da janela da outra aplicação. Este Handle você obtém pelo [b:12362a4bfd]FindWindow[/b:12362a4bfd].


Responder

Gostei + 0

16/06/2005

Sergiomatos

Nildo,

obrigado por responder, mas esta funcao faz com que na barra de tarefas, a aplicacao fique destacada só que não a torna ativa.

tem outra forma?


Responder

Gostei + 0

16/06/2005

Nildo

Nildo, obrigado por responder, mas esta funcao faz com que na barra de tarefas, a aplicacao fique destacada só que não a torna ativa. tem outra forma?


Faz um teste rapidão.. Quando ela ficar destacada, pressione ENTER, e veja se ela ativa após isso. Caso ative, a gente pode simular esse SetForegroundWIndow seguido de um Enter.

Eu me lembro que fiz essa gambiarra uma vez, e funcionou perfeito :D Pois eu queria fazer isso com uma janela do DOS em FullScreen que estava minimizada..


Responder

Gostei + 0

16/06/2005

Sergiomatos

Não deu certo, pois como foco estava em outra janela o enter iniciou outro processo.


Responder

Gostei + 0

16/06/2005

Nildo

Ja tentou usar um BringWindowToTop de uma das janelas do outro aplicativo?


Responder

Gostei + 0

16/06/2005

Sergiomatos

não colega, tb não deu certo.

Veja o que preciso fazer:

1) O foco esta no windows explorer
2) executo o instalador ( feito com innosetup)
3) na conclusao do instalador pergunto se o usuario deseja carregar a aplicacao
4) aplicacao e carregada, mas o foco volta para o windows explorer (onde tudo comecou)

então:

para o usuario não ficar confuso procurando onde esta a aplicacao, defini no form de splash e de login FormStyle = fsStayOnTop, mas o foco ainda continua no windows explorer, e o usuario para iniciar o sistema deve dar um click no form para entrar com os dados (usuario e senha).

bom ate que uma solução melhor apareca, vou ficar com essa.
:(


Responder

Gostei + 0

16/06/2005

Dopi

Pegue a Unit [b:b69c597091]SndKey32.pas[/b:b69c597091] que está na pasta Extra do CD do Delphi...

lá tem uma função que faz exatamente isso [b:b69c597091]AppActivate(´WindowName´);
[/b:b69c597091]... Veja o cabeçalho dela
(*
SendKeys routine for 32-bit Delphi.

Written by Ken Henderson

Copyright (c) 1995 Ken Henderson

This unit includes two routines that simulate popular Visual Basic
routines: Sendkeys and AppActivate.  SendKeys takes a PChar
as its first parameter and a boolean as its second, like so:

SendKeys(´KeyString´, Wait);

where KeyString is a string of key names and modifiers that you want
to send to the current input focus and Wait is a boolean variable or value
that indicates whether SendKeys should wait for each key message to be
processed before proceeding.  See the table below for more information.

AppActivate also takes a PChar as its only parameter, like so:

AppActivate(´WindowName´);

where WindowName is the name of the window that you want to make the
current input focus.

SendKeys supports the Visual Basic SendKeys syntax, as documented below.



Responder

Gostei + 0

25/01/2006

Mordred

Olha, comigo, que uso Delphi7 em Win2000, o AppActivate funcionou do mesmo jeito que o SetForegroundWindow. A janela não recebeu foco, mas sim seu botão ficou piscando (no bom sentido, é claro) na barra de tarefas. Além disso, quando usei AppActivate a janela do aplicativo foi restaurada, coisa que não acontecia com o SetForegroundWindow, onde a janela se mantém maximizada como deveria ficar.
Alguém sabe de mais alguma forma de forçar a janela a aparecer na cara do usuário automaticamente?


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar