Página 1 de 2
erro em programa rodando sem tela
Enviado: 06 Mar 2013 18:38
por cjp
Pessoal,
Fiz há algum tempo, com ajuda de alguns colegas do grupo, uma função para rodar sem tela (rodar em background, sem aparecer nada na tela). Funcionava perfeitamente.
A função está sendo chamada assim:
Código: Selecionar todos
comando="TAR2P.EXE " + us + " " + nmus + " " + vers
Hb_Run("Start /b " + comando)
Ultimamente, entretanto, ela está dando um problema: ao chamar a função, aparece a mensagem "Arquivo já está sendo usado", e daí não roda. Só que eu já testei várias vezes, a função não estava rodando. E mesmo que estivesse, não faz sentido dizer que o arquivo .exe já está sendo usado. Inclusive já havia testado rodá-la enquanto já estava sendo rodada, e funcionava perfeitamente.
Alguém saberia me dizer o que é isso?
erro em programa rodando sem tela
Enviado: 06 Mar 2013 21:08
por Pablo César
Verificou se no Gerenciador de Tarefas do Windows (Ctrl Alt Del) não estaria já sendo executado em background ?
erro em programa rodando sem tela
Enviado: 07 Mar 2013 00:24
por cjp
Verifiquei. Não aparece esse programa no Gerenciador de tarefas do Windows, nem mesmo quando ele está rodando. Porque ele roda dentro da janela do programa que o chamou, então só aparece o programa que o chamou, não o do programa chamado.
erro em programa rodando sem tela
Enviado: 07 Mar 2013 08:07
por Pablo César
cjp escreveu:Verifiquei. Não aparece ..//.. Porque ele roda dentro da janela do programa que o chamou, então só aparece o programa que o chamou, não o do programa chamado.
Não senhor ! Você deve procurar pela tarefa "cmd", pois você está executando através do START que é comando do sistema operacional para DOS.
erro em programa rodando sem tela
Enviado: 07 Mar 2013 09:15
por Jairo Maia
Olá Pablo,
Pablo César escreveu: Você deve procurar pela tarefa "cmd", pois você está executando através do START que é comando do sistema operacional para DOS.
Pablo, permita-me descordar. Um programa chamado pelo START ou pelo Run ou Hb_RUN do Harbour, aparece no gerenciador de tarefas o nome do programa que está sendo executado, podendo inclusive finalizar o processo através do gerenciador.
Inácio, que versão do Harbour você está usando?
erro em programa rodando sem tela
Enviado: 07 Mar 2013 09:25
por Pablo César
Jairo Maia escreveu:permita-me descordar. Um programa chamado pelo START ou pelo Run ou Hb_RUN do Harbour, aparece no gerenciador de tarefas o nome do programa que está sendo executado, podendo inclusive finalizar o processo através do gerenciador.
Você tem certeza disso ?
erro em programa rodando sem tela
Enviado: 07 Mar 2013 10:12
por Jairo Maia
Olá Pablo,
Sim, tenho certeza. Aliás, lembro-me que participei do tópico do cloga cjp (Inácio) que discutimos esta questão, se não me engano intitulado Rodar programa invisível.
Outrossim, se sair para o cmd e chamar qualquer programa usando o Start ou de forma direta, poderá ser visto tanto o cmd, bem como a cadeia dos programas que foram chamadas por ele.
erro em programa rodando sem tela
Enviado: 07 Mar 2013 10:50
por Pablo César
Jairo, faça um teste ai. Mas antes de executá-lo abra o Gerenciador de Tarefas e ordene por ordem alfabetica o nome dos processos e depois chame o teste. Você vai ver que chama o cmd e depois sai fora. Talvez por alguma razão o programa do colega esteja ocorrendo algum erro ou abortando com erro e fica na memória.
Mas que o cmd é executado, ele é...
erro em programa rodando sem tela
Enviado: 07 Mar 2013 16:25
por cjp
Pelos testes que eu fiz, no Gerenciador fica sim como cmd.exe, mas isso o programa principal, porque o programa chamado pelo start não aparece mais nada.
No caso, o problema é que o programa não está sequer sendo iniciado, dando a informação de que "o arquivo já está sendo usado por outro processo".
erro em programa rodando sem tela
Enviado: 07 Mar 2013 19:33
por Jairo Maia
Olá Inácio,
Por essa razão, num post mais acima perguntei qual versão do Harbour isto está ocorrendo. Alerto que na versão 3.2 o Run havia problema até pouco tempo atrás. Não sei se você está usando a versão nightly, e não sei se ela já tem uma release corrigida. Se você procurar no fórum, o colega Josè Quintas já publicou que na versão do SVN este problema foi corrigido. Como sei que você é paciente e persistente, foi a razão de ter perguntado qual versão do Harbour você está usando. Na versão 3.2 nightly o Run apresenta problemas.
erro em programa rodando sem tela
Enviado: 07 Mar 2013 23:24
por cjp
Realmente, Jairo, eu esqueci de te responder isso. Eu uso a 3.0. Tem problema nessa versão também?
Mas o curioso é que, desde que eu mudei para o Harbour, justamente por causa desse programa (vc deve lembrar que vc me ajudou muito com isso), sempre usei essa versão 3.0 e funcionava perfeitamente até uns 20 dias atrás.
erro em programa rodando sem tela
Enviado: 08 Mar 2013 11:32
por Jairo Maia
Olá Inácio,
cjp escreveu:Eu uso a 3.0. Tem problema nessa versão também?
Não. Na versão 3.0 o Run se comporta assim como no Clipper, e com melhor performance.
O que pode estar ocorrendo para você receber esta mensagem, é o fato de ter mudado algum atributo. Para verificar se isso ocorreu, proceda da seguinte forma:
1 - no prompt de comando, na pasta em que está o TAR2P.EXE digite:
Attrib tar2p.exe
2 - se aparecer algum atributo além do
A (Arquivo), precisa desativar
3 - para desativar pelo prompt, basta digitar:
Attrib -atributo TAR2P.EXE, sendo que podem ser
R,
S ou
H. Tem que deixar somente o atributo
A.
Faça essa verificação e nos reporte.
erro em programa rodando sem tela
Enviado: 09 Mar 2013 09:34
por cjp
Aqui no meu computador está apenas com A mesmo.
Será possível que esteja diferente nos computadores dos usuários? O que mais estranho é o fato de que deixou de funcionar com todos os usuários ao mesmo tempo.
erro em programa rodando sem tela
Enviado: 09 Mar 2013 13:49
por Jairo Maia
Olá Inácio,
Como você pode perceber, o problema está nas máquinas dos usuários. Como o sistema dos usuários é atualizado via FTP, é possivel que por alguma razão quando você subiu a última atualização ele foi com algum atributo de proteção, provavelmente o R de Read Only. Se você transportou esse arquivo via CD por exemplo antes da atualização, pode ser o motivo.
Se você puder obter essa informação de algum usuário, ou seja, a confirmação que o TAR2P.EXE tem outro atributo além do A, então fica claro a questão. O problema é que mesmo que o usuário faça outra atualização, o arquivo TAR2P.EXE não será atualizado, pois está protegido. Assim, sugiro que ao subir a atualização, certifique-se de que ele está somente com o atributo A, e antes de iniciar a cópia dos arquivos de atualização para o usuário, desproteja o arquivo do usuário:
Código: Selecionar todos
Hb_Run( "Attrib -R -S -H TAR2P.EXE" )
ou
Hb_Run( "Attrib -R -S -H Drive_e_Pasta_Do_Arquivo\TAR2P.EXE" )
Se não estou enganado, após baixar pelo ftp você faz a cópia por arquivo .BAT, se for o caso, você pode colocar esse comando direto no arquivo de lote.
erro em programa rodando sem tela
Enviado: 09 Mar 2013 15:00
por cjp
Vou testar isso nos computadores dos usuários quando tiver acesso. Depois te informo.
Coloquei assim no .bat onde descompilo o arquivo .rar que se transforma no .exe. Veja se está certo:
Código: Selecionar todos
if exist tar2p.exe attrib -r -s -h tar2p.exe
if exist tar2p.rar rar e tar2p -y