Clipper On Line • Ver Tópico - Ativar um programa Observer2.exe

Ativar um programa Observer2.exe

Projeto MiniGui - Biblioteca visual para Harbour/xHarbour

Moderador: Moderadores

 

Ativar um programa Observer2.exe

Mensagempor alberto_dias » 25 Out 2020 19:21

Prezados amigos,
Estou com o seguinte programa, utilizo o programa para emitir SAT, (Estado de São Paulo)
Uso o Observer2.exe da Daruma,
Uso o Sat Tanca TS 1000,
O que acontece,
Tudo funciona bem, os cupons saem corretamente, Mas, sempre o Mas,
E que de vez em quando um operador, menos avisado, encerra o Observer2.exe da
Daruma que tem que estar ligado, para fazer a comunicação do Kit, Sat Tanca Ts 1000,
com a Impressora Daruma Dr 800.
Eu preciso de um exemplo de como verificar se o Observer2.exe, foi encerrado em antes de
Abrir um novo cupom, ativar o Observer2.exe
Já tentei, o FindWindow, mas acho que não entendi, como funciona, não deu certo,
Seria possível,
Atenciosamente,
Alberto Dias
Nota de Moderação:
Itamar M. Lins Jr.: O presente tópico foi movido da seção HwGui, uma vez que seu conteúdo não tem relação com os objetivos daquela seção, onde só podem constar dúvidas técnicas de programação diretamente relacionadas com a HwGui.
Avatar de usuário

alberto_dias
Usuário Nível 2

Usuário Nível 2
 
Mensagens: 64
Data de registro: 10 Abr 2005 09:46
Cidade/Estado: Taboão da Serra - SP
Curtiu: 0 vez
Mens.Curtidas: 5 vezes

Ativar um programa Observer2.exe

Mensagempor ANDRIL » 26 Out 2020 17:48

Crie uma chamada para o Observer2.exe coloque no arquivo um método inexistente só para ver a resposta dele. Se ele demorar mais de 10 segundos para criar o retorno informe ao usuário para verificar se ele esta aberto, provavelmente esteja fechado.
Em relação a FIndWindow acho que só funcione se o Observer2 ficar aberto na barra de tarefas do Windows, se ele ficar na bandeja ela não vai conseguir localizar.
Clipper 5.2e / Blinker 5.1 / Harbour 3.2 / GTwvg
Avatar de usuário

ANDRIL
Usuário Nível 5

Usuário Nível 5
 
Mensagens: 1271
Data de registro: 06 Jul 2004 00:44
Curtiu: 12 vezes
Mens.Curtidas: 46 vezes

Ativar um programa Observer2.exe

Mensagempor ANDRIL » 26 Out 2020 17:56

Outra forma seria listar o que esta sendo executado no Windows, fazendo de cabeça não testei.

cmd = "TASKLIST.EXE > saida.txt"
run &(cmd)

if "OBSERVER2.EXE"$upper(memoread(saida.txt))
   WAIT"SENDO EXECUTADO!"
else
   WAIT"NAO ESTA SENDO EXECUTADO!"
endif
Clipper 5.2e / Blinker 5.1 / Harbour 3.2 / GTwvg
Avatar de usuário

ANDRIL
Usuário Nível 5

Usuário Nível 5
 
Mensagens: 1271
Data de registro: 06 Jul 2004 00:44
Curtiu: 12 vezes
Mens.Curtidas: 46 vezes

Ativar um programa Observer2.exe

Mensagempor alberto_dias » 28 Out 2020 14:30

Andril,
Muito obrigado,
Fiz algumas modificações, ficou bom, consigo verificar se está ativo, e consigo, mandar executar se não estiver
Ficou perfeito,
Muito Obrigado, novamente, este problema já ficou para traz, bora resolver ou outros, :) ;)
Atenciosamente,
Alberto Dias,
Alberto Dias
Atual.: Harbour 3.2.0 dev (r1703241902) + Gtwvg E Hmg IDE 3.5
Máquina Notebook - DELL ( INTEL CORE i5 ) 8 GB
Sistema - Windows 10 64 Bits
Avatar de usuário

alberto_dias
Usuário Nível 2

Usuário Nível 2
 
Mensagens: 64
Data de registro: 10 Abr 2005 09:46
Cidade/Estado: Taboão da Serra - SP
Curtiu: 0 vez
Mens.Curtidas: 5 vezes

Ativar um programa Observer2.exe

Mensagempor rubens » 02 Nov 2020 10:15

Bom dia..

Alberto....
tem como mostrar a solução??

Eu uso as rotinas abaixo para verificar se o abrmonitor.exe está sendo executado... mas as vezes dá um problema danado e o cliente liga pedindo suporte e vejo que o programa acbrmonitor.exe está carregado pelo menos umas 10 vezes na barra de tarefas... mesmo setando o acbrmonitor para executar somente uma vez. Daí só passa o mouse obre o icone e ele fecha sozinho até o ultimo que tem que ser fechado manualmente..
Faço assim:
*******************************************************************************
FUNCTION Abre_Acbr( lInternet )
   LOCAL cAcbrFile:= cDirMonitor+'ACBRMONITOR.EXE'
   LOCAL lRetorno := .f.
   
   hb_Default( @lInternet, .t. )  // se consultar ou nao internet antes de verificar acbr
   
   // Verifica se tem internet
   
   If lInternet
      If ! IsInternet()
         Alert('Sem conexao com a internet !!! Tente mais tarde ...')
         Return nil
        EndIf
   EndIf
   
   // Se Encontrou o executavel
   // executa
   If File( cAcbrFile )
   
      HB_RUN( 'START '+cAcbrFile)
      
      // Verifica se esta sendo executado o acbrmonitor.exe
      If EstaRodandoKillExe('acbrmonitor.exe')
         lRetorno := .t.
      Else
         Alert('Nao foi possivel executar o ACBRMONITOR.EXE !!! Chame o suporte t‚cnico...')
      Endif

   Else
      Alert('Nao foi possivel encontrar o arquivo: '+Hb_Eol()+cDirMonitor)
   Endif
   
   RETURN lRetorno
   

*******************************************************************************   
function EstaRodandoKillExe( _cExe, _nKill )
/*
* Verificar se um Exe est  sendo executado e podendo at‚ derrub -lo
* Parametros: _cExe, _nKill
* Retorno: Retorno - .t. se estiver rodando
*
* Autor: toya
*/
local Retorno := .f.
local oScriptObj
local oWmiService
local oListaProcess
local oProcessos

HB_DEFAULT(@_nKill,0)

oScriptObj       := CREATEOBJECT( "wbemScripting.SwbemLocator" )
oWmiService    := oScriptObj:ConnectServer()
oListaProcess    := oWmiService:ExecQuery( "select * from Win32_Process where Name='" + _cExe + "'" )

for Each oProcessos in oListaProcess
   Retorno := .t.
   if _nKill == 2
      oProcessos:Terminate() // mata o _cEXE
   endif
next

return Retorno
*******************************************************************************   
function FechaPrograma( _cExe )
/*
* Verificar se um Exe est  sendo executado e podendo at‚ derrub -lo
* Parametros: _cExe, _nKill
* Retorno: Retorno - .t. se estiver rodando
*
* Autor: toya
*/
local Retorno := .f.
local oScriptObj
local oWmiService
local oListaProcess
local oProcessos

oScriptObj := CREATEOBJECT( "wbemScripting.SwbemLocator" )
oWmiService := oScriptObj:ConnectServer()
oListaProcess := oWmiService:ExecQuery( "select * from Win32_Process where Name='" + _cExe + "'" )

for Each oProcessos in oListaProcess
   Retorno := .t.
   oProcessos:Terminate() // mata o _cEXE
next

return Retorno


Se puder mostrar como resolveu o problema... de repente é uma solução melhor do que a que estou usando ...

Att..
Rubens
"Eu e minha casa servimos ao Senhor e você ???"
Avatar de usuário

rubens
Colaborador

Colaborador
 
Mensagens: 1518
Data de registro: 16 Ago 2003 09:05
Cidade/Estado: Nova Xavantina - MT
Curtiu: 77 vezes
Mens.Curtidas: 104 vezes

Ativar um programa Observer2.exe

Mensagempor alberto_dias » 02 Nov 2020 12:38

Rubens,

Compartilho sim,

Este Fórum, já me ajudou tanto, que não tenho palavras a agradecer, digo até, continuo na programação pela ajuda de vocês, muito obrigado,

Abaixo o código,

codigo.txt
Código retirado de uma sequência,
(3.09 KiB) Baixado 78 vezes


Considerações:

1 - Não coloque extensão no nome do arquivo, no meu exemplo é saidaobs, se eu colocar saidaobs.txt não compila ou não funciona.

2 - Esqueça as minhas anotações sobre o programador, é apenas para "DEBUG", para acompanhar o desenrolar da execução,

Espero que tenha ajudado,

Está funcionando perfeitamente, já testei varias e varias vezes, e está instalado em clientes, e não executa mais de uma vez (isto é ótimo)

Alberto Dias
Alberto Dias
Atual.: Harbour 3.2.0 dev (r1703241902) + Gtwvg E Hmg IDE 3.5
Máquina Notebook - DELL ( INTEL CORE i5 ) 8 GB
Sistema - Windows 10 64 Bits
Avatar de usuário

alberto_dias
Usuário Nível 2

Usuário Nível 2
 
Mensagens: 64
Data de registro: 10 Abr 2005 09:46
Cidade/Estado: Taboão da Serra - SP
Curtiu: 0 vez
Mens.Curtidas: 5 vezes




Retornar para MiniGui

Quem está online

Usuários vendo este fórum: Nenhum usuário registrado online e 2 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