Página 1 de 2
Quem está usando o sistema?
Enviado: 26 Mar 2022 23:07
por Linguagemclipper
Prezados,
Preciso saber quem está usando o sistema, quais usuários? Tem jeito fácil?
Penso em criar um banco de dados com uma flag de usuário ativo ou inativo.
O problema é aquele usuário que não sai com a tecla <Esc>. Tem jeito de brecar ou executar uma rotina quando o usuário de teclar ALT+C ou clicar no botão X de fechar janela?
Estou usando RDD DBFCDX, talvez com um SQL ou outro database fosse mais fácil.
Quem está usando o sistema?
Enviado: 27 Mar 2022 10:05
por JoséQuintas
Não entendi.
Desde quando precisar liberar Alt-C para o usuário?
Desde quando precisa liberar pro usuário fechar no X da janela?
Tá programando em modo totalmente console, é isso?
Quem está usando o sistema?
Enviado: 27 Mar 2022 12:07
por Linguagemclipper
Sim, estou usando em modo console.
Lembro que tinha um comando ou função que impedia o ALT+C, mas não lembro o nome. Todavia o cara ainda poderia apertar o X e fechar a janela.
Enfim, como é que eu faço para não ficar liberado essas coisas?
Quem está usando o sistema?
Enviado: 27 Mar 2022 13:27
por Adalberto
Caro amigo,
Anexei um arquivo: WinApi.Prg, tem várias coisas que eu estava coletando deste fórum e outros Forum (sou muito grato aos autores), entre essas belezas está a função ApagarBotonX()
Espero que seja útil.
Um grande abraço da Bolívia.
Adalberto
Quem está usando o sistema?
Enviado: 27 Mar 2022 15:26
por JoséQuintas
Esqueça o que foi postado.
SetCancel( .F. )
coloque -GUI ou gtwvg.hbc, e o fechar janela vai ser traduzido para ESC.
Importante:
É provável que em modo GUI deve precisar outra rotina de erros, que não envie pra tela, que salve em disco, por exemplo.
Já aproveita e envia por email, faz log dos erros, etc.
Quem está usando o sistema?
Enviado: 27 Mar 2022 15:47
por alxsts
Olá!
Linguagemclipper escreveu:Preciso saber quem está usando o sistema, quais usuários? Tem jeito fácil?
Penso em criar um banco de dados com uma flag de usuário ativo ou inativo.
Neste caso, pouco importa se é DBF ou SQL.
Crie uma tabela onde possa armazenar os dados de cada sessão do sistema. Por exemplo, a cada login bem sucedido, armazene o ID do usuário que logou, a data e hora do login e guarde o ID do registro da sessão. Quando o usuário fechar o sistema, localize o login deste usuário na tabela e atualize com a data e hora do logout. Pode armazenar nela também dados de logins mal sucedidos (tentativas de invasão, usuário errou senha 3 ou mais vezes...). Pode ter outra tabela vinculada à tabela de sessões, onde armazenará o log de atividades do usuário em cada sessão (o que o usuário fez no sistema... inclusões, alterações, exclusões, impressões...). Desta forma você terá um controle total do tempo de utilização do sistema e atividades realizadas, podendo a qualquer momento fazer auditoria.
Linguagemclipper escreveu:O problema é aquele usuário que não sai com a tecla <Esc>. Tem jeito de brecar ou executar uma rotina quando o usuário de teclar ALT+C ou clicar no botão X de fechar janela?
Tem vários exemplos aqui no fórum para desabilitar fechamento de janela pelo "X". É só procurar.
No código abaixo, só finaliza o programa se teclar ESC:
Código: Selecionar todos
#include "set.ch"
#include "inkey.ch"
#include "hbgtinfo.ch"
Procedure Main()
REQUEST HB_LANG_PT
REQUEST HB_CODEPAGE_UTF8
REQUEST HB_GT_WVT_DEFAULT
hb_gtInfo( HB_GTI_WINTITLE , "Teste" )
hb_gtInfo( HB_GTI_ALTENTER, .T. ) // Permite <Alt-Enter> para tela cheia
hb_gtInfo( HB_GTI_CLOSABLE, .F. ) // Não deixa fechar no "X" nem no menu da barra de ferramentas
hb_gtinfo( HB_GTI_RESIZABLE, .T.)
Set( _SET_CANCEL, .F. ) // desabilita ALT+C e CTRL-PgBreak
CLS
While .T.
DispOutAt( 10, 10, "Pressione qualquer tecla para continuar ou [Esc] para encerrar..." )
Inkey(0)
If LastKey() == K_ESC
EXIT
Endif
Enddo
Return
//--------------------------------------------------
Quem está usando o sistema?
Enviado: 28 Mar 2022 08:04
por Kapiaba
Bom dia. Não uso mais DOS, más...
Código: Selecionar todos
// Impedindo o fechamento pelo X da janela ...
RUN C:\PASTASIS\CMDX
Download:
https://mega.nz/file/JRk3iCKS#c1aswmYwS ... rI45tXgOOk
Regards, saludos.
Quem está usando o sistema?
Enviado: 28 Mar 2022 09:48
por JoséQuintas
É a GT que uso, não sei se as outras aceitam igual.
Código: Selecionar todos
REQUEST HB_CODEPAGE_PTISO
#include "inkey.ch"
PROCEDURE Main
LOCAL nKey := 0
Set( _SET_CODEPAGE, "PTISO" )
SET EVENTMASK TO INKEY_ALL - INKEY_MOVE + HB_INKEY_GTEVENT
SetMode(40,100)
CLS
DO WHILE nKey != K_ESC
nKey := Inkey(0)
IF nKey == HB_K_CLOSE
Alert( "Tentou fechar no X" )
ENDIF
ENDDO
RETURN
PROCEDURE HB_GTSYS
REQUEST HB_GT_WVG_DEFAULT
RETURN
Não precisa usar nada da GTWVG, apenas indique e pronto.
Ela usa a GTWVT como base, que é a GUI default do Harbour, então talvez nem precise da GTWVG, e baste indicar -GUI na compilação.
Faça seu teste, é só acrescentar -GUI.
Quem está usando o sistema?
Enviado: 29 Mar 2022 12:16
por Linguagemclipper
Pessoal, estou usando o xHarbour v1.2.1
Parece que vocês estão usando o Harbour
Joguei o SETCANCEL(.F.), blz!
No Hbmake apareceu uma lib gtwvg, adicionei ela, mas não aconteceu nada diferente. Cliquei no X e fechou sem executar a EXIT PROCEDURE
Quem está usando o sistema?
Enviado: 29 Mar 2022 12:41
por alxsts
Olá!
Não testou o exemplo que coloquei acima? Funciona perfeitamente. Só sai teclando ESC...
O exemplo postado pelo Quintas dá erro:
Código: Selecionar todos
hbmk2: Erro: Referenciado, faltando, mas funções desconhecida(s):
HB_GT_WVG_DEFAULT()
O que falta incluir?
Quem está usando o sistema?
Enviado: 29 Mar 2022 12:52
por Linguagemclipper
Esse REQUEST HB_GT_WVT_DEFAULT deu erro pra mim
Quem está usando o sistema?
Enviado: 29 Mar 2022 17:40
por Paredes01
utilizo xharbour
modo consola 100%
**** [ agregar wvt.lib ]
#include "hbgtinfo.ch"
Request HB_GT_WVT_DEFAULT
Request HB_GT_WVT
Procedure Main()
SetCancel(.F.)
HB_GTInfo( HB_GTI_CLOSABLE, .F. ) //evita cerrar con [X]
Return
Quem está usando o sistema?
Enviado: 29 Mar 2022 17:55
por Linguagemclipper
O erro diz que está faltando essa lib aí wvt.lib
Realmente não consta na minha instalação ela.
Ví no site do xharbour as contributions sem links... muito louco!
Como baixo essa lib?
Quem está usando o sistema?
Enviado: 29 Mar 2022 18:07
por Paredes01
Cual xharbour utilizas con que compilador
cambia el nombre de la libreria de acuerdo a la versión de xharbour
El nombre de las funciones siguen igual
Saludos!!
Quem está usando o sistema?
Enviado: 29 Mar 2022 18:13
por Paredes01
Puedes descargar xharhour [libre]
con el tipo de compilador que utilices
link:
http://whosaway.com/
Saludos!!