Definir foco para outra aplicação
Colegas,
Alguem sabe como definir o foco para outra aplicação?.
Alguem sabe como definir o foco para outra aplicação?.
Sergiomatos
Curtidas 0
Respostas
Nildo
15/06/2005
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].
GOSTEI 0
Sergiomatos
15/06/2005
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?
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?
GOSTEI 0
Nildo
15/06/2005
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..
GOSTEI 0
Sergiomatos
15/06/2005
Não deu certo, pois como foco estava em outra janela o enter iniciou outro processo.
GOSTEI 0
Nildo
15/06/2005
Ja tentou usar um BringWindowToTop de uma das janelas do outro aplicativo?
GOSTEI 0
Sergiomatos
15/06/2005
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.
:(
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.
:(
GOSTEI 0
Dopi
15/06/2005
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
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.
GOSTEI 0
Mordred
15/06/2005
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?
Alguém sabe de mais alguma forma de forçar a janela a aparecer na cara do usuário automaticamente?
GOSTEI 0