Processo do windows

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

Moderador: Moderadores

leandrolinauer
Usuário Nível 3
Usuário Nível 3
Mensagens: 413
Registrado em: 16 Out 2006 10:59
Localização: Paranaíba-MS

Processo do windows

Mensagem por leandrolinauer »

Bom dia a todos
Notei um problema no meu sistema de uns dias pra cá, não descobri o que pode ser.
Em alguns Windows 7, o programa mesmo depois de finalizado ele continua no processo do windows em execução, ou seja:
Entro no sistema, funciona normalmente, mas quando saio dele, ele fecha a tela e no gerenciador de tarefas ele fecha nos aplicativos mas em processos nas imagens ele continua lá, uma, duas, n vezes que for aberto e finalizado.
o que pode ser?
Harbour 3.2 + GtWVW + QT + SQLite3 + DBF + SQL (Firebird)
Kapiaba
Colaborador
Colaborador
Mensagens: 1908
Registrado em: 07 Dez 2012 16:14
Localização: São Paulo
Contato:

Processo do windows

Mensagem por Kapiaba »

Na saida do seu programa, tente assim:

Código: Selecionar todos

   DbUnLockAll()
   DbCommitAll()
   DbCloseAll()
   Release All
   HB_GCALL( .T. )
   CLEAR MEMORY
   // PostQuitMessage( 0 ) // Veja se a sua LIB tem algo equivalente a este comando.
   SET CURSOR ON
   __QUIT()

RETURN( NIL )
Abs
leandrolinauer
Usuário Nível 3
Usuário Nível 3
Mensagens: 413
Registrado em: 16 Out 2006 10:59
Localização: Paranaíba-MS

Processo do windows

Mensagem por leandrolinauer »

Boa tarde.
Abaixo da forma como ficou juntamente como eu usava e funcionava, do nada começou a ocorrer isto em alguns windows, agora já ocorre no meu tbem.

Abaixo na sequencia

DbUnLockAll() //incluido, nao funcionou
DbCommitAll() //incluido, nao funcionou
DbCloseAll() //ja usava
Set Scoreboard On //uso
Set Delete Off //uso
Set Century Off //uso
Set Color To //uso
SetBlink(.T.) //uso
SetCursor(1) //uso

Estranho né, como que até a uns dias atrás estava tudo ok.
Continuo com o problema.
Detalhe
No meu pendrive executo e ele carrega no windows e quando sai do sistema ele finaliza certinho.
Quanto executo na pasta de instalação do sistema, já não funciona, sendo o mesmo copiado do pendrive na mesma hora.
Compilo no pendrive (onde eu crio) e instalo no lugar de instalação do sistema da loja, neste lugar não funciona.
Harbour 3.2 + GtWVW + QT + SQLite3 + DBF + SQL (Firebird)
Avatar do usuário
asimoes
Colaborador
Colaborador
Mensagens: 4919
Registrado em: 26 Abr 2007 16:48
Localização: RIO DE JANEIRO-RJ

Processo do windows

Mensagem por asimoes »

Houve alguma atualização do windows ?
Tentou copiar o conteúdo da pasta para uma outra unidade na mesma máquina pra ver se o problema ocorre ?
►Harbour 3.x | Minigui xx-x | HwGui◄
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
Kapiaba
Colaborador
Colaborador
Mensagens: 1908
Registrado em: 07 Dez 2012 16:14
Localização: São Paulo
Contato:

Processo do windows

Mensagem por Kapiaba »

// Mude a saida para uma FUNCAO, tipo assim e teste:

Código: Selecionar todos

FUNCTION FINALIZAR()

   DbUnLockAll()
   DbCommitAll()
   DbCloseAll()
   Release All
   HB_GCALL( .T. )
   CLEAR MEMORY
   // PostQuitMessage( 0 ) // Veja se a sua LIB tem algo equivalente a este comando.
   SET CURSOR ON

   QUIT

   ? "saiu ou nao? Na linha..."

RETURN NIL
Maquina esta livre de virus? procure no forum por KILL PROCESS Tambem.

Abs
Avatar do usuário
asimoes
Colaborador
Colaborador
Mensagens: 4919
Registrado em: 26 Abr 2007 16:48
Localização: RIO DE JANEIRO-RJ

Processo do windows

Mensagem por asimoes »

Mais informações por favor:

Qual é a versão do harbour 3.2 ou 3.4 ?
Qual compilador usado BCC x, GCC, LLVM/CLANG, MSVC ?
Qual é a versão do windows Xp, W7, W8,W10 ?
Usa HwGui ?
►Harbour 3.x | Minigui xx-x | HwGui◄
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
leandrolinauer
Usuário Nível 3
Usuário Nível 3
Mensagens: 413
Registrado em: 16 Out 2006 10:59
Localização: Paranaíba-MS

Processo do windows

Mensagem por leandrolinauer »

Boa tarde
HARBOUR
Harbour 3.2.0dev (r1601151502)
Copyright (c) 1999-2015, http://harbour-project.org/
COMPILADOR
GCC
Versão do Windows
Windows 7
HWgui
Não, neste projeto tenho GTWVW
Harbour 3.2 + GtWVW + QT + SQLite3 + DBF + SQL (Firebird)
Avatar do usuário
asimoes
Colaborador
Colaborador
Mensagens: 4919
Registrado em: 26 Abr 2007 16:48
Localização: RIO DE JANEIRO-RJ

Processo do windows

Mensagem por asimoes »

oK.

Faz um teste, inclui esse código no seu programa principal
Antes de encerrar a aplicação chama a função hb_ExitProcess()

Código: Selecionar todos

FUNCTION FINALIZAR()

   DbUnLockAll()
   DbCommitAll()
   DbCloseAll()
   Release All
   HB_GCALL( .T. )
   CLEAR MEMORY
   // PostQuitMessage( 0 ) // Veja se a sua LIB tem algo equivalente a este comando.
   SET CURSOR ON

  hb_ExitProcess() // <========

RETURN NIL

Código: Selecionar todos

#pragma BEGINDUMP

#include "hbapi.h"
#include "windows.h"

HB_FUNC( HB_EXITPROCESS )
{
   ExitProcess( 0 );
}
#pragma ENDDUMP
►Harbour 3.x | Minigui xx-x | HwGui◄
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
Avatar do usuário
asimoes
Colaborador
Colaborador
Mensagens: 4919
Registrado em: 26 Abr 2007 16:48
Localização: RIO DE JANEIRO-RJ

Processo do windows

Mensagem por asimoes »

A função hb_ExitProcess() vai remover a aplicação do processo do windows
►Harbour 3.x | Minigui xx-x | HwGui◄
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
Kapiaba
Colaborador
Colaborador
Mensagens: 1908
Registrado em: 07 Dez 2012 16:14
Localização: São Paulo
Contato:

Processo do windows

Mensagem por Kapiaba »

Olá, teste este executável e reporte o que ocorre ai na sua máquina. TUTOR04.EXE Fonte junto.

Abs.
Anexos
TUTOR04.ZIP
(1.76 MiB) Baixado 144 vezes
leandrolinauer
Usuário Nível 3
Usuário Nível 3
Mensagens: 413
Registrado em: 16 Out 2006 10:59
Localização: Paranaíba-MS

Processo do windows

Mensagem por leandrolinauer »

Boa tarde
TUTOR04, funciona certinho.


hb_ExitProcess() => congela o programa
Harbour 3.2 + GtWVW + QT + SQLite3 + DBF + SQL (Firebird)
Kapiaba
Colaborador
Colaborador
Mensagens: 1908
Registrado em: 07 Dez 2012 16:14
Localização: São Paulo
Contato:

Processo do windows

Mensagem por Kapiaba »

Asimoes, seu exemplo funciona perfeito com Harbour y xHarbour.

Código: Selecionar todos

#include "FiveWin.ch"

static oWnd

//----------------------------------------------------------------------------//

function Main()

   local oIco, oBar, oBmp

   DEFINE ICON oIco FILE "..\icons\fax.ico"

   DEFINE WINDOW oWnd FROM 1, 1 TO 22, 75 ;
      TITLE "FiveWin sample" ;
      MENU  BuildMenu() ;
      COLOR "B/W" ;
      ICON oIco

   DEFINE BUTTONBAR oBar _3D SIZE 26, 27 OF oWnd

   DEFINE BUTTON OF oBar FILENAME "..\bitmaps\16x16\new.bmp" FLAT ;
      ACTION MsgInfo( "New" ) ;
      TOOLTIP "Creates a new document"

   DEFINE BUTTON OF oBar FILENAME "..\bitmaps\16x16\open.bmp" FLAT ;
      ACTION MsgInfo( cGetFile( "*.*", "Select a document to open" ) ) ;
      TOOLTIP "Opens a document" WHEN .f.

   DEFINE BUTTON OF oBar FILENAME "..\bitmaps\16x16\floppy.bmp" FLAT ;
      ACTION MsgInfo( Time() ) TOOLTIP "Saves this document"

   DEFINE BUTTON OF oBar FILENAME "..\bitmaps\16x16\printer.bmp" FLAT ;
      ACTION MsgInfo( "Prints this document" ) TOOLTIP "Print this document" GROUP

   DEFINE BUTTON OF oBar FILENAME "..\bitmaps\16x16\prop.bmp" FLAT ;
      ACTION PrinterSetup() TOOLTIP "Setup the printer"

   DEFINE BUTTON OF oBar FILENAME "..\bitmaps\16x16\HelpInd.bmp" FLAT ;
      ACTION MsgInfo( Version() ) TOOLTIP "A multiple lines" + ;
      Chr( 13 ) + Chr( 10 ) + "tooltip!" GROUP

   DEFINE BUTTON OF oBar FILENAME "..\bitmaps\16x16\Help.bmp" FLAT ;
      ACTION MsgInfo( "fivewin power!" ) TOOLTIP "fivewin power!"

   DEFINE BUTTON OF oBar FILENAME "..\bitmaps\16x16\Exit.bmp" FLAT ;
          ACTION( FINALIZAR( oWnd ) ) TOOLTIP "Exit this app" GROUP

   //   ACTION oWnd:End() TOOLTIP "Exit this app" GROUP

   DEFINE MESSAGE OF oWnd ;
      PROMPT FWVERSION + " " + FWCOPYRIGHT ;
      NOINSET CENTERED KEYBOARD DATE CLOCK

   DEFINE BITMAP oBmp FILENAME "..\bitmaps\fiveback.bmp"

   oWnd:bPainted = { | hDC | BmpTiled( hDC, oWnd, oBmp ) }

   ACTIVATE WINDOW oWnd /*;
      VALID MsgYesNo( "Do you want to quit ?" ) */

return nil

//----------------------------------------------------------------------------//

function BuildMenu()

   local oMenu

   MENU oMenu
      MENUITEM "Information"
      MENU
         MENUITEM "&About..." ;
            ACTION MsgInfo( FWDESCRIPTION ) ;
            FILENAME "..\bitmaps\16x16\info.bmp"
         SEPARATOR
         MENUITEM "&End..."  ;
            ACTION( FINALIZAR( oWnd ) ) FILENAME "..\bitmaps\16x16\exit.bmp"

         //   ACTION oWnd:End() FILENAME "..\bitmaps\16x16\exit.bmp"

      ENDMENU

      MENUITEM "&Clients"
      MENU
         MENUITEM "&New..." ;
            ACTION ( MsgStop( "New Clients" ),;
                     oWnd:Say( 5, 5, "New Clients...", "GR+/G" ) ) ;
            FILENAME "..\bitmaps\16x16\faces.bmp"

         MENUITEM "&Modify..."  ACTION MsgInfo( "Modif. Clients" ) ;
            FILENAME "..\bitmaps\edit.bmp"

         MENUITEM "&Delete..."  ACTION MsgAlert( "Del Clients" ) ;
            FILENAME "..\bitmaps\16x16\delete.bmp"

         SEPARATOR

         MENUITEM "&Browse..."  ACTION MsgInfo( "Browse Clients" ) ;
            FILENAME "..\bitmaps\16x16\browse.bmp"

      ENDMENU

      MENUITEM "&Utilities"
      MENU
         MENUITEM "&Calculator..." ACTION WinExec( "Calc" ) ;
            FILENAME "..\bitmaps\16x16\calc.bmp"

         MENUITEM "&Internet..." ;
            ACTION WinExec( "start iexplore www.fivetech.com", 0 ) ;
            FILENAME "..\bitmaps\16x16\explorer.bmp"
      ENDMENU
   ENDMENU

return oMenu

//----------------------------------------------------------------------------//

STATIC FUNCTION BmpTiled( hDC, oWnd, oBmp )

   local nWidth := oWnd:nWidth(), nHeight := oWnd:nHeight()
   local nRow := 0, nCol := 0, n
   local nBmpWidth  := oBmp:nWidth(),  nBmpHeight := oBmp:nHeight()

   if oBmp:hBitmap == 0
      return nil
   endif

   while nRow < nHeight
      nCol = 0
      while nCol < nWidth
         PalBmpDraw( hDC, nRow, nCol, oBmp:hBitmap )
         nCol += nBmpWidth
      end
      nRow += nBmpHeight
   end

return nil

//----------------------------------------------------------------------------//

FUNCTION FINALIZAR( oWnd )

   // ? "saiu ou nao? Na linha: 148"

   DbUnLockAll()
   DbCommitAll()
   DbCloseAll()
   Release All
   HB_GCALL( .T. )
   CLEAR MEMORY

   oWnd:End()  // desligo a janela

   // PostQuitMessage( 0 ) // FiveWin the Power

   HB_EXITPROCESS() // Asimoes - Harbour y xHarbour funciona.

   SET CURSOR ON
   __QUIT()

RETURN NIL


#pragma BEGINDUMP

#include "hbapi.h"
#include "windows.h"

HB_FUNC( HB_EXITPROCESS )
{
   ExitProcess( 0 );
}
#pragma ENDDUMP
Abs.
leandrolinauer
Usuário Nível 3
Usuário Nível 3
Mensagens: 413
Registrado em: 16 Out 2006 10:59
Localização: Paranaíba-MS

Processo do windows

Mensagem por leandrolinauer »

Estou quase descobrindo, agora vai ser uma caçada as bruxas.
Executei um sistema mais velho, e este mais velho funcionou perfeitamente.
Agora é descobrir em que ponto da modificação fez ocorrer este problema.

Grato a todos.
-:]
Harbour 3.2 + GtWVW + QT + SQLite3 + DBF + SQL (Firebird)
leandrolinauer
Usuário Nível 3
Usuário Nível 3
Mensagens: 413
Registrado em: 16 Out 2006 10:59
Localização: Paranaíba-MS

Processo do windows

Mensagem por leandrolinauer »

Fiz uma pesquisa pente fino na biblioteca e não encontrei nada de anormal nas ultimas mudanças que fiz na ultima semana, fui alterando para como era e não resolveu o problema.
Outro detalhe: só esta ocorrendo isto em WINDOWS 7, fiz um teste em um WINDOWS 10 e não ocorre isto.
Vou verificar nos XPs e posto novamente
Grato a todos.
Harbour 3.2 + GtWVW + QT + SQLite3 + DBF + SQL (Firebird)
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Processo do windows

Mensagem por JoséQuintas »

O Harbour permite usar várias LIBs gráficas, e até sem lib gráfica.

Exemplo a investigar:

Compilou, mas deixou "restos" pra usar console.
Carrega o EXE, ele usa o console, e depois usa a GTWVW.... ao fechar GTWVW, continua o console.
Carrega o EXE, ele usa GTWW, janela GTWVW... ao fechar a janela... fecha só a janela não o programa, porque ficou algo pendente rodando.

"Tela Windows" não é tela console. O programa não precisa tela/janela pra funcionar.

O gerenciador de tarefas mostra as "telas" que estão sendo executadas, mas não os programas sem tela.
Algumas vezes, o programa fica como subprograma do prompt ou algo assim.

HB_GTSYS é onde se define a GT default, ou através de parâmetro na compilação.

É assim no Harbour, na HWGUI, MINIGUI, qualquer coisa.

Nota: não sei se é o caso, mas multithread também tem a ver.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Responder