iniciar programa minimizado ou invisível

Projeto [x]Harbour - Compilador de código aberto compatível com o Clipper.

Moderador: Moderadores

cjp
Usuário Nível 6
Usuário Nível 6
Mensagens: 1563
Registrado em: 19 Nov 2010 22:29
Localização: paraná
Contato:

iniciar programa minimizado ou invisível

Mensagem 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
Inacio de Carvalho Neto
luizservulo
Usuário Nível 1
Usuário Nível 1
Mensagens: 43
Registrado em: 02 Jan 2007 18:59
Localização: Diadema/SP

iniciar programa minimizado ou invisível

Mensagem por luizservulo »

utilize request gtnul
cjp
Usuário Nível 6
Usuário Nível 6
Mensagens: 1563
Registrado em: 19 Nov 2010 22:29
Localização: paraná
Contato:

iniciar programa minimizado ou invisível

Mensagem por cjp »

Amigo, vc poderia me dar mais detalhes? Não faço ideia do que seja isso.
Grato
Inacio
Inacio de Carvalho Neto
jamazevedo
Usuário Nível 3
Usuário Nível 3
Mensagens: 122
Registrado em: 29 Dez 2005 16:50
Localização: Manaus - AM

iniciar programa minimizado ou invisível

Mensagem 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)
______________________________________________________
Usando: Linux Ubuntu 18.04, Harbour 3.2.0dev r1811161533
______________________________________________________
José Airton de Menezes Azevedo
Manaus - AM
cjp
Usuário Nível 6
Usuário Nível 6
Mensagens: 1563
Registrado em: 19 Nov 2010 22:29
Localização: paraná
Contato:

iniciar programa minimizado ou invisível

Mensagem 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
Inacio de Carvalho Neto
jamazevedo
Usuário Nível 3
Usuário Nível 3
Mensagens: 122
Registrado em: 29 Dez 2005 16:50
Localização: Manaus - AM

iniciar programa minimizado ou invisível

Mensagem 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.
______________________________________________________
Usando: Linux Ubuntu 18.04, Harbour 3.2.0dev r1811161533
______________________________________________________
José Airton de Menezes Azevedo
Manaus - AM
cjp
Usuário Nível 6
Usuário Nível 6
Mensagens: 1563
Registrado em: 19 Nov 2010 22:29
Localização: paraná
Contato:

iniciar programa minimizado ou invisível

Mensagem 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
Inacio de Carvalho Neto
Avatar do usuário
Jairo Maia
Moderador
Moderador
Mensagens: 2785
Registrado em: 16 Ago 2010 13:46
Localização: Campinas-SP

iniciar programa minimizado ou invisível

Mensagem 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.
Abraços, Jairo
Harbour / Clipper 5.2e - Blinker 7
(Não respondo dúvidas por MP ou E-mail. Por favor, não encaminhe via mensagem privada ou e-mail, dúvidas que podem ser compartilhadas com todos no fórum)
cjp
Usuário Nível 6
Usuário Nível 6
Mensagens: 1563
Registrado em: 19 Nov 2010 22:29
Localização: paraná
Contato:

iniciar programa minimizado ou invisível

Mensagem 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?
Inacio de Carvalho Neto
jamazevedo
Usuário Nível 3
Usuário Nível 3
Mensagens: 122
Registrado em: 29 Dez 2005 16:50
Localização: Manaus - AM

iniciar programa minimizado ou invisível

Mensagem 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.
______________________________________________________
Usando: Linux Ubuntu 18.04, Harbour 3.2.0dev r1811161533
______________________________________________________
José Airton de Menezes Azevedo
Manaus - AM
cjp
Usuário Nível 6
Usuário Nível 6
Mensagens: 1563
Registrado em: 19 Nov 2010 22:29
Localização: paraná
Contato:

iniciar programa minimizado ou invisível

Mensagem 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.
Inacio de Carvalho Neto
cjp
Usuário Nível 6
Usuário Nível 6
Mensagens: 1563
Registrado em: 19 Nov 2010 22:29
Localização: paraná
Contato:

iniciar programa minimizado ou invisível

Mensagem por cjp »

Sera que tem alguma solução pra isso, alguem poderia me ajudar?
Inacio de Carvalho Neto
Avatar do usuário
Itamar M. Lins Jr.
Administrador
Administrador
Mensagens: 7929
Registrado em: 30 Mai 2007 11:31
Localização: Ilheus Bahia
Curtiu: 1 vez

iniciar programa minimizado ou invisível

Mensagem 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.
Saudações,
Itamar M. Lins Jr.
cjp
Usuário Nível 6
Usuário Nível 6
Mensagens: 1563
Registrado em: 19 Nov 2010 22:29
Localização: paraná
Contato:

iniciar programa minimizado ou invisível

Mensagem 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
Inacio de Carvalho Neto
cjp
Usuário Nível 6
Usuário Nível 6
Mensagens: 1563
Registrado em: 19 Nov 2010 22:29
Localização: paraná
Contato:

iniciar programa minimizado ou invisível

Mensagem por cjp »

Pessoal, será que alguém poderia me ajudar a finalizar esta pendência?
Obrigado a todos.
Inacio de Carvalho Neto
Responder