Página 1 de 1
Abrir a mesma instancia em vez de outra
Enviado: 08 Fev 2019 09:08
por Eduardo Pinho
Alguem sabe se no Harbour (ou no Windows) existe algum coisa que eu possa fazer pra quando eu clicar num executavel, maximizar uma instancia já aberta em vez de abrir outra?
Abrir a mesma instancia em vez de outra
Enviado: 12 Fev 2019 21:38
por NiltonGM
No prg principal (Main)
SET MULTIPLE OFF WARNING
Abrir a mesma instancia em vez de outra
Enviado: 02 Jul 2020 10:49
por clipsis
Oi, boa tarde
Esse comando existe mesmo ?
SET MULTIPLE OFF WARNING
Estou tentando, mas aprece erro de compilação
Código: Selecionar todos
Compiling 'sigepa.prg'...
sigepa.prg(30) Error E0030 Syntax error "syntax error at 'MULTIPLE'"
1 error
Abrir a mesma instancia em vez de outra
Enviado: 02 Jul 2020 11:45
por Softwhouse
Esse comando é da minigui.
Abrir a mesma instancia em vez de outra
Enviado: 02 Jul 2020 12:28
por Itamar M. Lins Jr.
Ola!
Alguem sabe se no Harbour (ou no Windows) existe algum coisa que eu possa fazer pra quando eu clicar num executavel, maximizar uma instancia já aberta em vez de abrir outra?
Estou entendendo o Aplicativo detectar que já está aberto avisar, sair e maximizar o outro, correto ?
Precisa usar MT.
Tem aqui no forum explicações não sei se nesse nível.
Saudações,
Itamar M. Lins Jr.
Abrir a mesma instancia em vez de outra
Enviado: 02 Jul 2020 14:17
por asimoes
Tenho isso:
ASAPREV - Versão 32 bits é o nome que está no caption da janela
Código: Selecionar todos
WITH OBJECT objShell := Win_OleCreateObject("WScript.Shell")
:AppActivate("ASAPREV - Versão 32 bits")
:SendKeys("% x")
END
Abrir a mesma instancia em vez de outra
Enviado: 02 Jul 2020 14:36
por asimoes
Eu faço assim, na function INIT a função oClPF:SistemaExecutando verifica se existe algum processo ou instância do aplicativo em execução, se existe, o objeto WScript.Shell
ativa a janela "ASAPREV - Versão 32 bits" usando o método AppActivate e envia uma tecla SendKeys para exibir a janela que já está em uso e em seguida fecha a janela que está em execução ou que foi chamada novamente.
Código: Selecionar todos
If oClPF:SistemaExecutando()
WITH OBJECT objShell := Win_OleCreateObject("WScript.Shell")
:AppActivate("ASAPREV - Versão 32 bits")
:SendKeys("%")
END
oClPF:SaidaSist()
Endif
Abrir a mesma instancia em vez de outra
Enviado: 02 Jul 2020 14:39
por asimoes
Fiz outro teste aqui nem precisa de :SendKeys("%"), basta AppActivate para ativar a janela que esteja minimizada
Correção: depois de AppActivate usar o método Sleep
:Sleep(1000)