Verificar se outro aplicativo esta aberto

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

Moderador: Moderadores

porter
Usuário Nível 5
Usuário Nível 5
Mensagens: 1057
Registrado em: 10 Dez 2009 16:44
Localização: OLIMPIA-SP

Verificar se outro aplicativo esta aberto

Mensagem por porter »

olá pessoal,
Gostaria de saber se ao entrar no sistema tem como verificar se um determinado aplicativo está sendo executado,
seria assim se ao acessar o sistema o AcbrMonitor não estiver sendo executado dar uma mensagem.

xHarbour, windows 7.
Avatar do usuário
fladimir
Colaborador
Colaborador
Mensagens: 2445
Registrado em: 15 Nov 2006 20:21

Verificar se outro aplicativo esta aberto

Mensagem por fladimir »

Sun Tzu há mais de três mil anos cita nas epígrafes de seu livro “A Arte da Guerra“:

“Concentre-se nos pontos fortes, reconheça as fraquezas, agarre as oportunidades e proteja-se contra as ameaças”.
“Se não é vantajoso, nunca envie suas tropas; se não lhe rende ganhos, nunca utilize seus homens; se não é uma situação perigosa, nunca lute uma batalha precipitada”
.


Até 2017    Desktop Console [ Legado ] Harbour | MinGW | DBF | CDX | FastReport | MySQL


Novos Projetos:

   Desktop Visual           Windev Desktop
   Celular Android/iOS   Windev Mobile
   WEB                            Windev Web


Sejamos gratos a Deus.
Avatar do usuário
rochinha
Administrador
Administrador
Mensagens: 4664
Registrado em: 18 Ago 2003 20:43
Localização: São Paulo - Brasil
Contato:

Verificar se outro aplicativo esta aberto

Mensagem por rochinha »

Amiguinhos,

Se o intuito é verificar se o monitor está fechado e então abri-lo voce pode enviar o comando ECF.Ativar para o mesmo e puxar o retorno. Se o monitor estiver ativo ele retornará OK:.

Lógico que você deve apagar os arquivos SAI.TXT e ENT.TXT, enviar o comando e verificar se estes arquivos foram criados. Caso não, o monitor não está ativo e então você poderá executá-lo.

Exemplo de implementação:

Código: Selecionar todos

   if ! ACBR_NFE_Ativo()
      if ! MsgYesNo( "Confirma a execucao do Monitor?" )
         return .f.
      endif
      WinExec( "ACBrNFeMonitor.exe" )
   endif
Exemplo fictício de uso:

Código: Selecionar todos

function ACBR_NFE_Ativo(_caminho_)
   cECFLOG        := ""
   cCmd           := ""
   ACBR_NFE_Comando( "NFE.Ativo", ["]+cCmd+["] )
   MyWait(10)
   _vezes_        := 30
   cPathMonitorNFE:= VerifyINI( "PATHS", "PathMonitorNFE", "..\", cPath+"\NF-e\ACBrNFeMonitor.ini", .f.)
   cPathNFE       := VerifyINI( "PATHS", "PathNFE"       , "..\", cPath+"\NF-e\ACBrNFeMonitor.ini", .f.)
   cDirDoMonitor  := cPathMonitorNFE
   do while _vezes_ > 0
      // Verifica se o arquivo Status.txt existe.
      // Este arquivo que contém o estado de execução do comando
      // enviado.
      if file( cDirDoMonitor+"\SAINFE.TXT" )
         cECFLOG := memoread( cDirDoMonitor+"\SAINFE.TXT" )
         //CopyFile( cDirDoMonitor+"\SAINFE.TXT", cDirDoMonitor+"\SAINFE.INI" )
         exit
      endif
      MyWait(5)
      _vezes_--
   enddo 
   retorno := ACBR_NFE_Retorno()
   return iif( substr( cECFLOG ,1 ,2 )="OK", .t., .f. )
OPS! LINK QUEBRADO? Veja ESTE TOPICO antes e caso não encontre ENVIE seu email com link do tópico para [url=mailto://fivolution@hotmail.com]fivolution@hotmail.com[/url]. Agradecido.

@braços : ? )

A justiça divina tarda mas não falha, enquanto que a justiça dos homens falha porque tarda.
Responder