Página 1 de 2
Processo do windows
Enviado: 06 Fev 2018 11:34
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?
Processo do windows
Enviado: 06 Fev 2018 12:09
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
Processo do windows
Enviado: 06 Fev 2018 15:06
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.
Processo do windows
Enviado: 06 Fev 2018 15:31
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 ?
Processo do windows
Enviado: 06 Fev 2018 15:35
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
Processo do windows
Enviado: 06 Fev 2018 15:49
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 ?
Processo do windows
Enviado: 06 Fev 2018 15:55
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
Processo do windows
Enviado: 06 Fev 2018 16:11
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
Processo do windows
Enviado: 06 Fev 2018 16:15
por asimoes
A função hb_ExitProcess() vai remover a aplicação do processo do windows
Processo do windows
Enviado: 06 Fev 2018 16:21
por Kapiaba
Olá, teste este executável e reporte o que ocorre ai na sua máquina. TUTOR04.EXE Fonte junto.
Abs.
Processo do windows
Enviado: 06 Fev 2018 16:31
por leandrolinauer
Boa tarde
TUTOR04, funciona certinho.
hb_ExitProcess() => congela o programa
Processo do windows
Enviado: 06 Fev 2018 16:37
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.
Processo do windows
Enviado: 06 Fev 2018 16:43
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.
-:]
Processo do windows
Enviado: 06 Fev 2018 17:56
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.
Processo do windows
Enviado: 06 Fev 2018 19:04
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.