Página 1 de 1
Verificar se outro aplicativo esta aberto
Enviado: 31 Jan 2017 16:09
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.
Verificar se outro aplicativo esta aberto
Enviado: 31 Jan 2017 16:59
por fladimir
Verificar se outro aplicativo esta aberto
Enviado: 05 Fev 2017 01:27
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. )