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
Ativar um programa Observer2.exe
Moderador: Moderadores
- alberto_dias
- 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
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.
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.
Ativar um programa Observer2.exe
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.
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
Ativar um programa Observer2.exe
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!"
endifClipper 5.2e / Blinker 5.1 / Harbour 3.2 / GTwvg
- alberto_dias
- 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
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,
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
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
- rubens
- Colaborador

- Mensagens: 1520
- Registrado em: 16 Ago 2003 09:05
- Localização: Nova Xavantina - MT
Ativar um programa Observer2.exe
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:
Se puder mostrar como resolveu o problema... de repente é uma solução melhor do que a que estou usando ...
Att..
Rubens
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
Att..
Rubens
"Eu e minha casa servimos ao Senhor e você
"
- alberto_dias
- 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
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,
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
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,
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
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
