Clipper On Line • Ver Tópico - Abrir a mesma instancia em vez de outra

Abrir a mesma instancia em vez de outra

Projeto Harbour - Compilador de código aberto compatível com o Clipper.

Moderador: Moderadores

 

Abrir a mesma instancia em vez de outra

Mensagempor Eduardo Pinho » 08 Fev 2019 08:08

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?
Eduardo Pinho
Colaborador

Colaborador
 
Mensagens: 71
Data de registro: 13 Jun 2014 19:30
Cidade/Estado: Niteroi
Curtiu: 2 vezes
Mens.Curtidas: 5 vezes

Abrir a mesma instancia em vez de outra

Mensagempor NiltonGM » 12 Fev 2019 20:38

No prg principal (Main)

SET MULTIPLE OFF WARNING
Nilton Medeiros
nilton@sistrom.com.br
Avatar de usuário

NiltonGM
Usuário Nível 3

Usuário Nível 3
 
Mensagens: 393
Data de registro: 05 Jun 2014 23:47
Cidade/Estado: Caieiras/SP
Curtiu: 249 vezes
Mens.Curtidas: 25 vezes

Abrir a mesma instancia em vez de outra

Mensagempor clipsis » 02 Jul 2020 10:49

Oi, boa tarde

Esse comando existe mesmo ?

SET MULTIPLE OFF WARNING

Estou tentando, mas aprece erro de compilação

Compiling 'sigepa.prg'...
sigepa.prg(30) Error E0030  Syntax error "syntax error at 'MULTIPLE'"
1 error
Clipper 5.2/Blinker
Harbour 3.0/Mingw
clipsis
Usuário Nível 2

Usuário Nível 2
 
Mensagens: 79
Data de registro: 02 Jun 2010 11:53
Cidade/Estado: brasil
Curtiu: 0 vez
Mens.Curtidas: 0 vez

Abrir a mesma instancia em vez de outra

Mensagempor Softwhouse » 02 Jul 2020 11:45

Esse comando é da minigui.
Fernando
Softwhouse
Usuário Nível 3

Usuário Nível 3
 
Mensagens: 300
Data de registro: 07 Dez 2011 17:44
Cidade/Estado: Porto Alegre/RS
Curtiu: 0 vez
Mens.Curtidas: 12 vezes

Abrir a mesma instancia em vez de outra

Mensagempor Itamar M. Lins Jr. » 02 Jul 2020 12:28

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.
Avatar de usuário

Itamar M. Lins Jr.
Colaborador

Colaborador
 
Mensagens: 6951
Data de registro: 30 Mai 2007 11:31
Cidade/Estado: Ilheus Bahia
Curtiu: 312 vezes
Mens.Curtidas: 507 vezes

Abrir a mesma instancia em vez de outra

Mensagempor asimoes » 02 Jul 2020 14:17

Tenho isso:

ASAPREV - Versão 32 bits é o nome que está no caption da janela

     WITH OBJECT objShell := Win_OleCreateObject("WScript.Shell")
         :AppActivate("ASAPREV - Versão 32 bits")   
         :SendKeys("% x")
      END
â–ºHarbour 3.x | Minigui xx-x | HwGuiâ—„
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
Avatar de usuário

asimoes
Colaborador

Colaborador
 
Mensagens: 4919
Data de registro: 26 Abr 2007 16:48
Cidade/Estado: RIO DE JANEIRO-RJ
Curtiu: 341 vezes
Mens.Curtidas: 258 vezes

Abrir a mesma instancia em vez de outra

Mensagempor asimoes » 02 Jul 2020 14:36

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.
  If oClPF:SistemaExecutando()
      WITH OBJECT objShell := Win_OleCreateObject("WScript.Shell")
         :AppActivate("ASAPREV - Versão 32 bits")   
         :SendKeys("%")
      END
      oClPF:SaidaSist()
   Endif
â–ºHarbour 3.x | Minigui xx-x | HwGuiâ—„
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
Avatar de usuário

asimoes
Colaborador

Colaborador
 
Mensagens: 4919
Data de registro: 26 Abr 2007 16:48
Cidade/Estado: RIO DE JANEIRO-RJ
Curtiu: 341 vezes
Mens.Curtidas: 258 vezes

Abrir a mesma instancia em vez de outra

Mensagempor asimoes » 02 Jul 2020 14:39

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)
â–ºHarbour 3.x | Minigui xx-x | HwGuiâ—„
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
Avatar de usuário

asimoes
Colaborador

Colaborador
 
Mensagens: 4919
Data de registro: 26 Abr 2007 16:48
Cidade/Estado: RIO DE JANEIRO-RJ
Curtiu: 341 vezes
Mens.Curtidas: 258 vezes




Retornar para Harbour

Quem está online

Usuários vendo este fórum: Google [Bot] e 7 visitantes


Ola Amigo, espero que meu site e forum tem lhe beneficiado, com exemplos e dicas de programacao.
Entao divulgue o link da Doacao abaixo para seus amigos e redes sociais ou faça uma doacao para o site forum...
MUITO OBRIGADO PELA SUA DOACAO!
Faça uma doação para o forum
cron
v
Olá visitante, seja bem-vindo ao Fórum Clipper On Line!
Efetue o seu login ou faça o seu Registro