Página 1 de 2

iniciar programa minimizado ou invisível

Enviado: 20 Jul 2011 10:42
por cjp
Pessoal, estou iniciando um programa compilado com o xHarbour por meio do agendamento de tarefas do Windows. É um programinha simples, que executa uma pequena função e encerra rapidamente. O problema é que a janela dele atrapalha o usuário, que acaba o fechando antes (clicando no X da janela) antes que ele termine.
Por isso, gostaria de saber se existe algum jeito de iniciar esse programa em janela minimizada, ou até mesmo rodá-lo em background, sem janela visível ao usuário.
Já tentei ver isso no próprio agendamento de tarefas do Windows, mas não consegui.
Alguém poderia me ajudar?
Inacio

iniciar programa minimizado ou invisível

Enviado: 22 Jul 2011 09:58
por luizservulo
utilize request gtnul

iniciar programa minimizado ou invisível

Enviado: 27 Jul 2011 10:56
por cjp
Amigo, vc poderia me dar mais detalhes? Não faço ideia do que seja isso.
Grato
Inacio

iniciar programa minimizado ou invisível

Enviado: 28 Jul 2011 09:03
por jamazevedo
Um pequeno exemplo:
--------------------
background.prg

Código: Selecionar todos

procedure main
              local nhandle := fcreate( "log.txt" )
              fwrite( nhandle , "esse comando foi executado em background em " + dtoc( date() ) + " as " + time() )
              fclose( nhandle )
--------------------
O arquivo para compilação
background.hbp

Código: Selecionar todos

# compila so os alterados
-inc
-fullstatic
-gtnul

# lib que serao licadas
-lhbct
-lxhb

# nome do executavel
-obackground

# fontes que serao compilados e lincados
background.prg

Agora é só compilar
hbmk2 background.hbp

E roda o executável
./background


Estou utilizando: Linux Ubuntu 10.04 e Harbour 2.1.0Beta 2( 14955)

iniciar programa minimizado ou invisível

Enviado: 05 Ago 2011 10:33
por cjp
Então minha versão do xHarbour é diferente. Ela compila com o build. Tem como fazer isto nesta versão?
Grato
Inacio
Abracos

iniciar programa minimizado ou invisível

Enviado: 05 Ago 2011 15:54
por jamazevedo
Quando eu utilizada o xHarbour, para gerar o arquivo de compilação, tinha um utilitário chamado hbmake.

Esse utilitário criava um arquivo de compilação com a extensão .bc

Você pode editar o arquivo .bc e procurar pelo seguinte parâmetro...

Código: Selecionar todos

LFLAGS = -Wl,--noinhibit-exec -static -gtnul
...e acrescentar o -gtnul que está no final da linha acima.

Eu não recordo, agora, se é possível fazer isso diretamente através do utilitário hbmake.

iniciar programa minimizado ou invisível

Enviado: 10 Ago 2011 08:23
por cjp
Então a versão que vc usava é diferente da minha. A minha não usa o hbmake, usa o build. Ela não cria arquivo .bc, ela cria arquivo .c, mas nesse arquivo não tem a linha que vc mencionou. Será que não tem outro jeito de resolver isso?
Grato
Inacio

iniciar programa minimizado ou invisível

Enviado: 10 Ago 2011 15:42
por Jairo Maia
Olá Inácio,
cjp escreveu:A minha não usa o hbmake, usa o build.
Acredito que seja o xBuild, é isso? Se for, para rodar um programa no modo invisível, veja o exemplo abaixo:

Código: Selecionar todos

REQUEST HB_GT_NUL
REQUEST HB_GT_NUL_DEFAULT
//Function Main()  // Deixe comentada esta linha para compilação direta
 ? "Vc não vai ver esta linha"
 Alert( "Alert Ignorado. Vc não verá a Janela do Alert" )
 MemoWrit( "log.txt", "Esse comando foi executado em background em " + DToC( Date() ) + " as " + Time() ) 
 inkey(20) // aguarde 20 segundos
Return
Compile assim: xBuild NomeDoExemplo.prg

Rode o exemplo e aguarde 20 segundos, depois edite o arquivo log.txt e veja que foi executado.

Outro teste: Rode novamente o exemplo, enquando aguarda o tempo, digite CTRL+ALT+DEL para abrir o gerenciador de tarefas, e na aba Processos, localize o nome do seu exemplo e aguarde ele terminar.

iniciar programa minimizado ou invisível

Enviado: 15 Ago 2011 09:02
por cjp
Meu caro, não funcionou; a janela continua aparecendo

Primeiro, não consegui compilar com a linha 3 comentada, dá erro na compilação. Compilando com a linha Funcion Main() ativa, ao chamar o programa pelo Agendador de Tarefas, ele abre a janela normalmente. Roda tudo certo, inclusive a mensagem do Alert não aparece, mas a janela aparece. E era justamente isso que eu queria evitar: que abrisse a janela.

Como eu faço?

iniciar programa minimizado ou invisível

Enviado: 15 Ago 2011 09:12
por jamazevedo
Rapaz parece que você chegou onde queria...
Roda tudo certo, inclusive a mensagem do Alert não aparece,...
...mas a janela aparece. E era justamente isso que eu queria evitar: que abrisse a janela.
Para que a janela não apareca adicione o aplicativo criado ao Agendador de Tarefas do Windows assim será executado em background sem aparecer nenhuma janela, a janela que está aparecendo é poque você está dando clique em cima do executável.

iniciar programa minimizado ou invisível

Enviado: 18 Ago 2011 10:49
por cjp
Mas é justamente isto que eu estou fazendo: está no Agendador de Tarefas do Windows. Não estou dando clique no executável.
Estranho isso.

iniciar programa minimizado ou invisível

Enviado: 24 Ago 2011 09:18
por cjp
Sera que tem alguma solução pra isso, alguem poderia me ajudar?

iniciar programa minimizado ou invisível

Enviado: 24 Ago 2011 09:49
por Itamar M. Lins Jr.
Usando Harbour 3.1 com Hwgui.

Código: Selecionar todos

#include "windows.ch"
#include "guilib.ch"

Function Main
Local oMainWindow, oTrayMenu, oIcon := HIcon():AddResource("ICON_1")

   INIT WINDOW oMainWindow MAIN TITLE "Example"

   CONTEXT MENU oTrayMenu
      MENUITEM "Message"  ACTION MsgInfo( "Tray Message !" )
      SEPARATOR
      MENUITEM "Exit"  ACTION EndWindow()
   ENDMENU

   oMainWindow:InitTray( oIcon,,oTrayMenu,"TestTray" )

   ACTIVATE WINDOW oMainWindow NOSHOW
   oTrayMenu:End()

Return Nil
Simples não ?

Saudações,
Itamar M. Lins Jr.

iniciar programa minimizado ou invisível

Enviado: 26 Ago 2011 08:51
por cjp
Prezados amigos, na compilação, nao esta achando o windows.ch, onde era pra estar esta arquivo? Vc poderia mandá-lo?
Att
Inacio

iniciar programa minimizado ou invisível

Enviado: 04 Set 2011 01:33
por cjp
Pessoal, será que alguém poderia me ajudar a finalizar esta pendência?
Obrigado a todos.