Ativar um programa Observer2.exe

Projeto MiniGui - Biblioteca visual para Harbour/xHarbour

Moderador: Moderadores

Avatar do usuário
alberto_dias
Usuário Nível 2
Usuário Nível 2
Mensagens: 64
Registrado em: 10 Abr 2005 09:46
Localização: Taboão da Serra - SP
Contato:

Ativar um programa Observer2.exe

Mensagem por alberto_dias »

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
Editado pela última vez por Itamar M. Lins Jr. em 04 Nov 2020 11:02, em um total de 2 vezes.
Razão: 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 do usuário
ANDRIL
Usuário Nível 5
Usuário Nível 5
Mensagens: 1297
Registrado em: 06 Jul 2004 00:44
Contato:

Ativar um programa Observer2.exe

Mensagem por ANDRIL »

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 do usuário
ANDRIL
Usuário Nível 5
Usuário Nível 5
Mensagens: 1297
Registrado em: 06 Jul 2004 00:44
Contato:

Ativar um programa Observer2.exe

Mensagem por ANDRIL »

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

Código: Selecionar todos

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 do usuário
alberto_dias
Usuário Nível 2
Usuário Nível 2
Mensagens: 64
Registrado em: 10 Abr 2005 09:46
Localização: Taboão da Serra - SP
Contato:

Ativar um programa Observer2.exe

Mensagem por alberto_dias »

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 do usuário
rubens
Colaborador
Colaborador
Mensagens: 1520
Registrado em: 16 Ago 2003 09:05
Localização: Nova Xavantina - MT

Ativar um programa Observer2.exe

Mensagem por rubens »

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:

Código: Selecionar todos

*******************************************************************************
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 do usuário
alberto_dias
Usuário Nível 2
Usuário Nível 2
Mensagens: 64
Registrado em: 10 Abr 2005 09:46
Localização: Taboão da Serra - SP
Contato:

Ativar um programa Observer2.exe

Mensagem por alberto_dias »

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 158 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
Responder