Página 1 de 1

Evitar a Tela do Batch aberta chamado via Icone

Enviado: 07 Jun 2011 16:06
por Jairo Maia
Caros Colegas,

Ao compilar uma aplicação com MiniGui, e acessar via icone um arquivo bat para abrir o programa, a tela do bat fica aparecendo no fundo da tela do aplicativo, e também aparece na barra de tarefas.

Cheguei a ver algo sobre isso no fórum, e não encontro mais pela busca, mas lembro que o tópico não era conclusivo.

Se vou para o prompt de comando, e chamo o bat via prompt, o prompt minimiza e somente a tela do aplicativo fica aberta, e pode inclusive fechar o prompt sem problema.

Se acessar pelo icone, ambas ficam abertas, e a tela do bat ao ser fechada fecha também o aplicativo.

Sei que posso mudar a forma da aplicação para não necessitar do arquivo de lote, mas nesse momento seria melhor se pudesse ter outra solução, pois ele controla a abertura de outros dois módulos, que quando acessados, usados e concluidos, retorna para a aplicação após o término.

Como fazer para que a tela do .bat não seja aberta? Onde estou dando mancada? Tentei todo tipo de configuração no icone e não tive sucesso. Isto ocorre tanto no XP como no Seven.

Será que alguém já passou por isso e conseguiu resolver?

Agradeço se alguém puder dar alguma dica.

Evitar a Tela do Batch aberta chamado via Icone

Enviado: 07 Jun 2011 21:07
por Pablo César
Vendo esse seu problema doponto de vista do próprio sistema operacional, não tem como deixar de abrir, pois arquivos bat são arquivos considerado como uma nova sessão do "DOS". Pois o arquivo bat é um arquivo em lote e ele estará aberto até quando alcançar a execução linha a linha até o final do arquivo. O que você poderia fazer é ocultar essa seção. Para isso você poderia implementar no proprio bat chamando um utilitário (Wapi ou TrayIt por exemplo) que execute a batch no tray.

Evitar a Tela do Batch aberta chamado via Icone

Enviado: 10 Jun 2011 17:55
por Jairo Maia
Caro Pablo,

Obrigado pelas suas dicas. Na manhã seguinte ao seu post, baixei a WAPI e também o TrayIt. O TrayIt não atende minha pretensão, pois busco uma solução que não necessite a interferência do usuário.

Quanto a WAPI do Maligno, verifiquei, li e reli toda documentação disponibilizada, mas não consegui ver nenhuma forma que pudesse me atender. Pode ser por falta de conhecimento, mas não consegui encontrar que forma eu faria isso com ela.

Pesquisei bastante sobre esta questão na internet, a procura de algo que solucionasse, existe muita coisa, mas nada como eu procuro, ou seja, de forma automática.

Acabei descobrindo que acessando propriedades/destino, ao colocar > Nul no final da linha, a janela abre minimizada, o que não é solução, mas melhora um pouco. O problema é se o usuário clicar na barra, a tela vazia aparece.

Vou repensar o projeto para não necessitar arquivo batch, uma vez que com Harbour, não há preocupação com tamanho de executável.

A demora na resposta, se deu porquê gostaria de esgotar minhas possibilidades, e agora ocorreu.

Meu muito obrigado pela atenção dispensada, e saiba que as dicas contribuiram para meu aprendizado.

Evitar a Tela do Batch aberta chamado via Icone

Enviado: 13 Jun 2011 08:56
por Pablo César
A idéia passou naminha cabeça de indicar algo que seja executado no tray, dessa forma na ficaria aparecendo, na teoria, mas senão deu certo, tive outra idéia. No seu batch, você deve estar executando alguns comandos antes de chamar a sua aplicação e depois de chamar a sua aplicação a batch deveria encerrar ? Se for, sim então na mesma linha que você digitou o nome da sua aplicação para ser chamada, adicione no final da linha um ALT 26 que serviria para indicar final de arquivo. Tenta, provavelmente funcione. E senão mostre o conteúdo da sua batch pra vermos como poderiamos resolver.

Evitar a Tela do Batch aberta chamado via Icone

Enviado: 13 Jun 2011 20:33
por alxsts
Olá!

Já experimentou o comando START do DOS (CMD)?

Ele tem um parâmetro ( /B )que "Inicia um aplicativo sem criar uma nova janela". Tecle START /? na janela CMD para exibir a ajuda.

Não testei. Resta saber se ele iniciaria o CMD sem criar uma nova janela e abriria a janela do teu aplicativo.

Evitar a Tela do Batch aberta chamado via Icone

Enviado: 14 Jun 2011 11:43
por alxsts
Olá!

Fiz um teste com o batch abaixo. A janela DOS não aparece. Naturalmente aparece no tray. Veja se te ajuda.

Código: Selecionar todos

@ECHO OFF
CMD /C START "" /D C:\Sistemas\PIZZA /B C:\Sistemas\PIZZA\PIZZA.EXE

Evitar a Tela do Batch aberta chamado via Icone

Enviado: 14 Jun 2011 13:22
por Jairo Maia
Olá Pablo e Alexandre,
Pablo César escreveu:No seu batch, você deve estar executando alguns comandos antes de chamar a sua aplicação e depois de chamar a sua aplicação a batch deveria encerrar ?
Os comandos são executados depois do executavel, então não pude usar sua sugestão. Veja como é o bat:

Código: Selecionar todos

@echo off
:inicio
 cd C:\SHOPPING  // ou caminho da rede
 SHOPPING.EXE
 if exist COMANDOS.BAT call COMANDOS.BAT
 if exist COMANDOS.BAT goto inicio
 if exist SUPORTE.BAT call SUPORTE.BAT
 if exist SUPORTE.BAT goto inicio
:fim
cd\
exit
alxsts escreveu:Já experimentou o comando START do DOS (CMD)?
Já havia visto essa sugestão na internet, fiz alguns testes, mas não dá resultado. A janela da batch não é ocultada pela opção /B.
alxsts escreveu:Fiz um teste com o batch abaixo. A janela DOS não aparece.
Não consegui também. Salvo se eu não soube fazer a adaptação. Agora com conhecimento do .bat, e se foi mancada minha, peço desculpas. Gostaria de lembrá-lo também, que este batch está sendo chamado por um ícone.

Se não houver novidade, acho que o problema está Resolvido!
Depois de inúmeras perguntas no Google, e depois de perceber que inúmeros colegas fazem com freqência essa pergunta nas mais diversas linguagens de programação, acho que agora fiz a pergunta certa: "ocultar janela de console". Entre outras páginas, encontrei uma que dizia: "Hidden Start Download Grátis".

Ao acessar esta página, tive a sensação de que o problema estava resolvido, e foi confirmado. Embora use um utilitário, não necessita a interferência do usuário.

A Ntwind Software, disponibilizou em 22/03/2011 o utilitário hstart.exe para OS 32 bits, e o hstart64.exe para OS 64 bits. Basta coloca-lo na mesma pasta do .bat ou .cmd, ou em alguma pasta do PATH, alterar a opção DESTINO no ícone, no meu caso: C:\hstart.exe /NOCONSOLE C:\SHOPPING.BAT, e a janela da batch não aparece.

A única alteração a fazer é atualizar o icone, e manter uma cópia no mesmo local do .bat ou .cmd, que no meu caso, no cliente final será feito pelo instalador.

Para quem precisar resolver este problema, acesse: Hidden Start Grátis

Compatível com XP, Vista e Seven.

Por enquanto, meu muito obrigado pela atenção de vocês dois, e espero sempre as dicas de vocês quando possível.
Um Grande Abraço.

Evitar a Tela do Batch aberta chamado via Icone

Enviado: 13 Jun 2024 23:26
por JoãoBC
Uma opção é compilar o arquivo de Lote/Batch de .bat para .exe, usando o freeware batTOexe, tickando na opção de não exibir janela.