Clipper On Line • Ver Tópico - verificar ociosidade de sistema

verificar ociosidade de sistema

Projeto MiniGui - Biblioteca visual para Harbour/xHarbour

Moderador: Moderadores

 

verificar ociosidade de sistema

Mensagempor HASA » 24 Abr 2014 14:14

Boa tarde, colegas li muitas mensagens a respeito mas... não localizei exatamente o que pretendo fazer a saber:

Caso o meu sistema não esteja em uso, ou seja, teclado e mouse ociosos por "n" tempo a definir, eu gostaria de enviar para uma pequena função que abriria um aviso com timer e se o usuário não responde-se ao apelo do sistema o mesmo fecharia os bancos de dados e janelas e encerraria o sistema, ou seja, o que não foi gravado pelo usuário seria perdido.

Achei bastante material aqui no forum mas... nada que eu possa detectar a inoperância do mouse e teclado para ai sim depois dos tais "n" minutos chamar a função de eu voiu fechar...

Algum colega tem uma dica ?

:(

HASA
Avatar de usuário

HASA
Colaborador

Colaborador
 
Mensagens: 1082
Data de registro: 01 Set 2003 19:50
Cidade/Estado: São Paulo
Curtiu: 1 vez
Mens.Curtidas: 51 vezes

verificar ociosidade de sistema

Mensagempor asimoes » 24 Abr 2014 14:54

Hasa,

Procura estas variáveis na pasta samples da minigui

Este valores correspondem as coordenadas da posição do mouse, com uma função tempo DEFINE TIMER pode verficar os valores da última coordenada, acho que é por ai.

_HMG_MouseCol
_HMG_MouseRow
â–º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 de usuário

asimoes
Colaborador

Colaborador
 
Mensagens: 4919
Data de registro: 26 Abr 2007 16:48
Cidade/Estado: RIO DE JANEIRO-RJ
Curtiu: 341 vezes
Mens.Curtidas: 258 vezes

verificar ociosidade de sistema

Mensagempor HASA » 24 Abr 2014 15:21

:D
Obrigado já é um começo vamos ver se chego lá valeuuu.
HASA
Avatar de usuário

HASA
Colaborador

Colaborador
 
Mensagens: 1082
Data de registro: 01 Set 2003 19:50
Cidade/Estado: São Paulo
Curtiu: 1 vez
Mens.Curtidas: 51 vezes

verificar ociosidade de sistema

Mensagempor Toledo » 28 Abr 2014 19:05

Hasa, segue em anexo um exemplo do que você pode fazer.

idlesystem.zip
Exemplo para MiniGui Extended
(650.13 KiB) Baixado 110 vezes


Versão para HMG:
http://hmgforum.com/viewtopic.php?p=33929#p33929

Abraços,
Toledo - Clipper On Line
toledo@pctoledo.com.br
Harbour 3.2/MiniGui/HwGui
Faça uma doação para o fórum, clique neste link: http://www.pctoledo.com.br/doacao
Avatar de usuário

Toledo
Administrador

Administrador
 
Mensagens: 3038
Data de registro: 22 Jul 2003 18:39
Cidade/Estado: Araçatuba - SP
Curtiu: 263 vezes
Mens.Curtidas: 258 vezes

verificar ociosidade de sistema

Mensagempor HASA » 29 Abr 2014 10:29

:)) :*

Era isso mesmo simples e FANTASTICO no meu caso é a Minigui Extend mesmo.
:{
HASA
Avatar de usuário

HASA
Colaborador

Colaborador
 
Mensagens: 1082
Data de registro: 01 Set 2003 19:50
Cidade/Estado: São Paulo
Curtiu: 1 vez
Mens.Curtidas: 51 vezes

verificar ociosidade de sistema

Mensagempor HASA » 29 Abr 2014 11:01

:(
Bom dia, Toledo mesmo em seu teste você pode perceber que os LABEL ficaram com fundo, ou seja, "macha" todas as janelas do sistema que tem LABEL, será que tem como corrigir isso ?

HASA
Avatar de usuário

HASA
Colaborador

Colaborador
 
Mensagens: 1082
Data de registro: 01 Set 2003 19:50
Cidade/Estado: São Paulo
Curtiu: 1 vez
Mens.Curtidas: 51 vezes

verificar ociosidade de sistema

Mensagempor Toledo » 29 Abr 2014 14:57

Hasa, troque a função MyEvents() que está no meu exemplo por esta:

function MyEvents ( hWnd, nMsg, wParam, lParam )
if nMsg != 275
  n_Secs:=SECONDS()
  if nMsg == 312
   i_ := AScan ( _HMG_aControlHandles , lParam )
   if i_ > 0
     TmpStr := _HMG_aControlType [i_]
     if TmpStr == "LABEL"
       if ValType ( _HMG_aControlInputMask [i_] ) == 'L'
         if _HMG_aControlInputMask [i_] == .T.
           SetBkMode( wParam , 1 )
           RETURN( GetStockObject( 5 ) )
         endif
       endif
     endif
   endif
  endif
endif
Events ( hWnd, nMsg, wParam, lParam )
Return (0)


Abraços,
Toledo - Clipper On Line
toledo@pctoledo.com.br
Harbour 3.2/MiniGui/HwGui
Faça uma doação para o fórum, clique neste link: http://www.pctoledo.com.br/doacao
Avatar de usuário

Toledo
Administrador

Administrador
 
Mensagens: 3038
Data de registro: 22 Jul 2003 18:39
Cidade/Estado: Araçatuba - SP
Curtiu: 263 vezes
Mens.Curtidas: 258 vezes

verificar ociosidade de sistema

Mensagempor HASA » 29 Abr 2014 15:06

:-O

Boa tarde, Toledo, agora os Label "TODOS" perderam a cor de frente, os TEXTBOX perderam a cor tbm, ficou tudo PRETO i BRANCO. Minigui Extend 2.3.4 + Xharbour que vem com o pacote ok.
:-o
HASA
Avatar de usuário

HASA
Colaborador

Colaborador
 
Mensagens: 1082
Data de registro: 01 Set 2003 19:50
Cidade/Estado: São Paulo
Curtiu: 1 vez
Mens.Curtidas: 51 vezes

verificar ociosidade de sistema

Mensagempor Toledo » 29 Abr 2014 15:26

HASA escreveu:os TEXTBOX perderam a cor tbm, ficou tudo PRETO i BRANCO

Antes da alteração na função MyEvents(), as cores dos TEXTBOX estavam corretas?

Abraços,
Toledo - Clipper On Line
toledo@pctoledo.com.br
Harbour 3.2/MiniGui/HwGui
Faça uma doação para o fórum, clique neste link: http://www.pctoledo.com.br/doacao
Avatar de usuário

Toledo
Administrador

Administrador
 
Mensagens: 3038
Data de registro: 22 Jul 2003 18:39
Cidade/Estado: Araçatuba - SP
Curtiu: 263 vezes
Mens.Curtidas: 258 vezes

verificar ociosidade de sistema

Mensagempor HASA » 29 Abr 2014 15:40

:D
sim apenas os LABEL´s que estavam como no seu exemplo com fundo, após a alteração sumiu o fundo e as cores tbm, porem afetou os textbox e esqueci de comentar os Frames ganharam o fundo que antes estavam nos lable´s ok.
HASA
Avatar de usuário

HASA
Colaborador

Colaborador
 
Mensagens: 1082
Data de registro: 01 Set 2003 19:50
Cidade/Estado: São Paulo
Curtiu: 1 vez
Mens.Curtidas: 51 vezes

verificar ociosidade de sistema

Mensagempor Toledo » 29 Abr 2014 16:21

Hasa, substitua novamente a função MyEvents():

function MyEvents ( hWnd, nMsg, wParam, lParam )
if nMsg != 275
  n_Secs:=SECONDS()
  if nMsg == 312

      i := AScan ( _HMG_aControlHandles , lParam )

      if i > 0

         TmpStr := _HMG_aControlType [i]

         if TmpStr $ "GETBOX,LABEL,HYPERLINK,CHECKBOX,FRAME,SLIDER,NUMTEXT,MASKEDTEXT,CHARMASKTEXT,BTNTEXT,BTNNUMTEXT,EDIT,CHECKLABEL"

            if TmpStr $ "GETBOX,NUMTEXT,MASKEDTEXT,CHARMASKTEXT,BTNTEXT,BTNNUMTEXT,EDIT"

               if IsWindowEnabled( _HMG_aControlHandles[ i ] )

                  if _HMG_aControlFontColor [ i ] != Nil
                     if ValType( _HMG_aControlFontColor [ i , 2] ) == "A" .AND. Len( _HMG_aControlFontColor [ i , 2] ) == 3
                        SetTextColor( wParam, _HMG_aControlFontColor [ i , 2 , 1 ], _HMG_aControlFontColor [ i , 2 , 2 ], _HMG_aControlFontColor [ i , 2 , 3 ] )
                     elseif ValType( _HMG_aControlFontColor [ i , 2 ] ) == "N" .AND. Len( _HMG_aControlFontColor [ i ] ) == 3
                        SetTextColor( wParam, _HMG_aControlFontColor [ i , 1 ], _HMG_aControlFontColor [ i , 2 ], _HMG_aControlFontColor [ i , 3 ] )
                     endif
                  endif

                  if _HMG_aControlBkColor [ i ] != Nil

                     if ValType( _HMG_aControlBkColor [ i , 2 ] ) == "A" .AND. Len( _HMG_aControlBkColor [ i , 2 ] ) == 3
                        SetBkColor( wParam , _HMG_aControlBkColor [ i , 2 , 1 ] , _HMG_aControlBkColor [ i , 2 , 2 ] , _HMG_aControlBkColor [ i , 2 , 3 ] )
                        DeleteObject ( _HMG_aControlBrushHandle [ i ] )
                        _HMG_aControlBrushHandle [ i ] := CreateSolidBrush( _HMG_aControlBkColor [ i , 2 , 1 ] , _HMG_aControlBkColor [ i , 2 , 2 ] , _HMG_aControlBkColor [ i , 2 , 3 ] )
                        RETURN ( _HMG_aControlBrushHandle [ i ] )
                     ELSE
                        if ValType( _HMG_aControlBkColor [ i , 2] ) == "N" .AND. Len( _HMG_aControlBkColor [ i ] ) == 3
                           SetBkColor( wParam , _HMG_aControlBkColor [ i , 1 ] , _HMG_aControlBkColor [ i , 2 ] , _HMG_aControlBkColor [ i , 3 ] )
                           DeleteObject ( _HMG_aControlBrushHandle [ i ] )
                           _HMG_aControlBrushHandle [ i ] := CreateSolidBrush( _HMG_aControlBkColor [ i , 1 ] , _HMG_aControlBkColor [ i , 2 ] , _HMG_aControlBkColor [ i , 3 ] )
                           RETURN ( _HMG_aControlBrushHandle [ i ] )
                        endif
                     endif

                  ELSE
                     SetBkColor( wParam , GetRed ( GetSysColor ( COLOR_3DFACE ) ) , GetGreen ( GetSysColor ( COLOR_3DFACE ) ) , GetBlue ( GetSysColor ( COLOR_3DFACE ) ) )
                     DeleteObject ( _HMG_aControlBrushHandle [ i ] )
                     _HMG_aControlBrushHandle [ i ] := CreateSolidBrush( GetRed ( GetSysColor ( COLOR_3DFACE ) ) , GetGreen ( GetSysColor ( COLOR_3DFACE ) ) , GetBlue ( GetSysColor (COLOR_3DFACE ) ) )
                     RETURN ( _HMG_aControlBrushHandle [ i ] )

                  endif

               endif

            ELSE

               if IsXPThemed == Nil
                  IsXPThemed := IsThemed()
               endif

               Tmp := _HMG_aControlContainerRow [i] <> -1 .AND. _HMG_aControlContainerCol [i] <> -1 .AND. _HMG_aControlBkColor [i] == Nil

               if IsXPThemed .AND. TmpStr == "SLIDER" .AND. Tmp
                  if _HMG_aControlDblClick [i] == .F. .AND. !lOpaque
                     r := GetControlIndex( _HMG_aControlFontHandle [i], _HMG_aControlMiscData1 [i] )
                     DeleteObject ( _HMG_aControlBrushHandle [r] )
                     z := GetControlHandle( _HMG_aControlFontHandle [i], _HMG_aControlMiscData1 [i] )
                     _HMG_aControlBrushHandle [r] := GetTabBrush( z )
                     RETURN GetTabbedControlBrush ( wParam , lParam , z , _HMG_aControlBrushHandle [r] )
                  endif
               endif

               if IsXPThemed .AND. TmpStr == "FRAME" .AND. Tmp
                  if _HMG_aControlDblClick [i] == .F.
                     r := GetControlIndex( _HMG_aControlRangeMin [i], _HMG_aControlRangeMax [i] )
                     DeleteObject ( _HMG_aControlBrushHandle [r] )
                     z := GetControlHandle( _HMG_aControlRangeMin [i], _HMG_aControlRangeMax [i] )
                     _HMG_aControlBrushHandle [r] := GetTabBrush( z )
                     RETURN GetTabbedControlBrush ( wParam , lParam , z , _HMG_aControlBrushHandle [r] )
                  ELSE
                     lOpaque := .T.
                  endif
               endif

               if IsXPThemed .AND. TmpStr == "CHECKBOX" .AND. Tmp
                  if _HMG_aControlDblClick [i] == .F. .AND. !lOpaque
                     r := GetControlIndex( _HMG_aControlRangeMin [i], _HMG_aControlRangeMax [i] )
                     DeleteObject ( _HMG_aControlBrushHandle [r] )
                     z := GetControlHandle( _HMG_aControlRangeMin [i], _HMG_aControlRangeMax [i] )
                     _HMG_aControlBrushHandle [r] := GetTabBrush( z )
                     RETURN GetTabbedControlBrush ( wParam , lParam , z , _HMG_aControlBrushHandle [r] )
                  endif
               endif

               if _HMG_aControlFontColor [i] != Nil
                  SetTextColor( wParam , _HMG_aControlFontColor [i] [1] , _HMG_aControlFontColor [i] [2] , _HMG_aControlFontColor [i] [3] )
               endif

               if ValType ( _HMG_aControlInputMask [i] ) == 'L'
                  if _HMG_aControlInputMask [i] == .T.
                     SetBkMode( wParam , 1 )
                     RETURN( GetStockObject( NULL_BRUSH ) )
                  endif
               endif

               if _HMG_aControlBkColor [i] != Nil

                  SetBkColor( wParam , _HMG_aControlBkColor [i] [1] , _HMG_aControlBkColor [i] [2] , _HMG_aControlBkColor [i] [3] )
                  DeleteObject ( _HMG_aControlBrushHandle [i] )
                  _HMG_aControlBrushHandle [i] := CreateSolidBrush( _HMG_aControlBkColor [i] [1] , _HMG_aControlBkColor [i] [2] , _HMG_aControlBkColor [i] [3] )
                  RETURN ( _HMG_aControlBrushHandle [i] )

               ELSE

                  DeleteObject ( _HMG_aControlBrushHandle [i] )
                  _HMG_aControlBrushHandle [i] := CreateSolidBrush( GetRed ( GetSysColor ( COLOR_3DFACE ) ) , GetGreen ( GetSysColor ( COLOR_3DFACE ) ) , GetBlue ( GetSysColor ( COLOR_3DFACE ) ) )
                  SetBkColor( wParam , GetRed ( GetSysColor ( COLOR_3DFACE ) ) , GetGreen ( GetSysColor ( COLOR_3DFACE ) ) , GetBlue ( GetSysColor ( COLOR_3DFACE ) ) )
                  RETURN ( _HMG_aControlBrushHandle [i] )

               endif

            endif

         endif

      ELSE

         FOR i := 1 TO Len ( _HMG_aControlhandles )

            if ValType ( _HMG_aControlHandles [i] ) == 'A'

               if _HMG_aControlType [i] == 'RADIOGROUP'

                  FOR x := 1 TO Len ( _HMG_aControlHandles [i] )

                     if _HMG_aControlHandles [i] [x] == lParam

                        if _HMG_aControlFontColor [i] != Nil
                           SetTextColor( wParam , _HMG_aControlFontColor [i] [1] , _HMG_aControlFontColor [i] [2] , _HMG_aControlFontColor [i] [3] )
                        endif

                        if IsXPThemed == Nil
                           IsXPThemed := IsThemed()
                        endif

                        if IsXPThemed .AND. _HMG_aControlContainerRow [i] <> -1 .AND. _HMG_aControlContainerCol [i] <> -1
                           if _HMG_aControlDblClick [i] == .F. .AND. !lOpaque .AND. _HMG_aControlBkColor [i] == Nil
                              r := GetControlIndex( _HMG_aControlRangeMin [i], _HMG_aControlRangeMax [i] )
                              DeleteObject ( _HMG_aControlBrushHandle [r] )
                              z := GetControlHandle( _HMG_aControlRangeMin [i], _HMG_aControlRangeMax [i] )
                              _HMG_aControlBrushHandle [r] := GetTabBrush( z )
                              RETURN GetTabbedControlBrush ( wParam , lParam , z , _HMG_aControlBrushHandle [r] )
                           endif
                        endif

                        if ValType ( _HMG_aControlInputMask [i] ) == 'L'
                           if _HMG_aControlInputMask [i] == .T.
                              SetBkMode( wParam , 1 )
                              RETURN ( GetStockObject( NULL_BRUSH ) )
                           endif
                        endif

                        if _HMG_aControlBkColor [i] != Nil
                           SetBkColor( wParam , _HMG_aControlBkColor [i] [1] , _HMG_aControlBkColor [i] [2] , _HMG_aControlBkColor [i] [3] )
                           if x == 1
                              DeleteObject ( _HMG_aControlBrushHandle [i] )
                              _HMG_aControlBrushHandle [i] := CreateSolidBrush( _HMG_aControlBkColor [i] [1] , _HMG_aControlBkColor [i] [2] , _HMG_aControlBkColor [i] [3] )
                           endif
                           RETURN ( _HMG_aControlBrushHandle [i] )
                        ELSE
                           if x == 1
                              DeleteObject ( _HMG_aControlBrushHandle [i] )
                              _HMG_aControlBrushHandle [i] := CreateSolidBrush( GetRed ( GetSysColor ( COLOR_3DFACE ) ) , GetGreen ( GetSysColor ( COLOR_3DFACE ) ) , GetBlue ( GetSysColor ( COLOR_3DFACE ) ) )
                           endif
                           SetBkColor( wParam , GetRed ( GetSysColor ( COLOR_3DFACE ) ) , GetGreen ( GetSysColor ( COLOR_3DFACE ) ) , GetBlue ( GetSysColor ( COLOR_3DFACE ) ) )
                           RETURN ( _HMG_aControlBrushHandle [i] )

                        endif

                     endif

                  NEXT x

               endif

            endif

         NEXT i

      endif
  endif
endif
Events ( hWnd, nMsg, wParam, lParam )
Return (0)


Abraços,
Toledo - Clipper On Line
toledo@pctoledo.com.br
Harbour 3.2/MiniGui/HwGui
Faça uma doação para o fórum, clique neste link: http://www.pctoledo.com.br/doacao
Avatar de usuário

Toledo
Administrador

Administrador
 
Mensagens: 3038
Data de registro: 22 Jul 2003 18:39
Cidade/Estado: Araçatuba - SP
Curtiu: 263 vezes
Mens.Curtidas: 258 vezes

verificar ociosidade de sistema

Mensagempor Toledo » 29 Abr 2014 16:26

Acabei esquecendo:

Antes do Function Main(), colocar:

#include "i_winuser.ch"

STATIC lOpaque := .F., IsXPThemed


Abraços,
Toledo - Clipper On Line
toledo@pctoledo.com.br
Harbour 3.2/MiniGui/HwGui
Faça uma doação para o fórum, clique neste link: http://www.pctoledo.com.br/doacao
Avatar de usuário

Toledo
Administrador

Administrador
 
Mensagens: 3038
Data de registro: 22 Jul 2003 18:39
Cidade/Estado: Araçatuba - SP
Curtiu: 263 vezes
Mens.Curtidas: 258 vezes

verificar ociosidade de sistema

Mensagempor HASA » 29 Abr 2014 16:43

:?
Ainda não mas... estamos bem perto, declarei as variaveis como LOCAL IsXPThemed, COLOR_3DFACE, NULL_BRUSH, lOpaque

Porque o sistema não iniciava dava erro bem no começo, agora todos os LABEL´s ficaram BRANCOS de frente e fundo.

:-O

HASA
Avatar de usuário

HASA
Colaborador

Colaborador
 
Mensagens: 1082
Data de registro: 01 Set 2003 19:50
Cidade/Estado: São Paulo
Curtiu: 1 vez
Mens.Curtidas: 51 vezes

verificar ociosidade de sistema

Mensagempor HASA » 29 Abr 2014 16:44

8-|

Opsss, não vi se post acima, aguarde vou revisar o fonte.
:)Pos
HASA
Avatar de usuário

HASA
Colaborador

Colaborador
 
Mensagens: 1082
Data de registro: 01 Set 2003 19:50
Cidade/Estado: São Paulo
Curtiu: 1 vez
Mens.Curtidas: 51 vezes

verificar ociosidade de sistema

Mensagempor HASA » 29 Abr 2014 17:13

:))

Mais perto do FIM. Agora os LABEL´s, Frames´s, Grid´s, estão ok porem os TEXTBOX e COMBOBOX ficaram com fundo Branco e frente preto. A systaxe que uso é assim:

@ 165,570 COMBOBOX CB_TIPO ;
WIDTH 105 ;
ITEMS { "INDÚSTRIA","COMÉRCIO","SERVIÇOS" } ;
FONT "MS SANS SERIF" SIZE 9 BOLD ;
UPPERCASE ;
BACKCOLOR _BLUE5 FONTCOLOR _WHITE

@ 145,690 LABEL SUFRAMA ;
VALUE 'Suframa' ;
WIDTH 50 ;
HEIGHT 15 ;
FONTCOLOR _BLUE ;
TRANSPARENT

@ 165,690 TEXTBOX TXTISUF;
HEIGHT 20 ;
WIDTH 075 ;
BACKCOLOR _YELLOW2;
FONTCOLOR _VERDE ;
FONT "MS SANS SERIF" SIZE 9 BOLD;
TOOLTIP "Digite o Código do Suframa";
MAXLENGTH 09 UPPERCASE ;
ON GOTFOCUS This.BackColor:= _BLUE3 ;
ON LOSTFOCUS This.BackColor:=_YELLOW2
:%
HASA
Avatar de usuário

HASA
Colaborador

Colaborador
 
Mensagens: 1082
Data de registro: 01 Set 2003 19:50
Cidade/Estado: São Paulo
Curtiu: 1 vez
Mens.Curtidas: 51 vezes

Próximo



Retornar para MiniGui

Quem está online

Usuários vendo este fórum: Nenhum usuário registrado online e 5 visitantes


Ola Amigo, espero que meu site e forum tem lhe beneficiado, com exemplos e dicas de programacao.
Entao divulgue o link da Doacao abaixo para seus amigos e redes sociais ou faça uma doacao para o site forum...
MUITO OBRIGADO PELA SUA DOACAO!
Faça uma doação para o forum
cron
v
Olá visitante, seja bem-vindo ao Fórum Clipper On Line!
Efetue o seu login ou faça o seu Registro