Clipper On Line • Ver Tópico - desabilitando CTRL-ALT-DEL via xHarbour
Página 1 de 2

desabilitando CTRL-ALT-DEL via xHarbour

MensagemEnviado: 11 Ago 2009 16:25
por Inacio
Pessoal, alguém saberia me dizer como faço para desabilitar as teclas CTRL-ALT-DEL, evitando assim que o programa compilado com o xHarbour seja fechado pelo usuário desta forma?

Grato

Inacio

Re: desabilitando CTRL-ALT-DEL via xHarbour

MensagemEnviado: 12 Ago 2009 16:18
por sygecom
Olá Inacio,
Eu já tinha postado algo, já para você mesmo. De uma olhada no post abaixo, o que não consegui fazer funcionar ai ?
viewtopic.php?f=43&t=9350

Re: desabilitando CTRL-ALT-DEL via xHarbour

MensagemEnviado: 12 Ago 2009 16:47
por Inacio
Sim, eu lembro que vc havia me mandando esse demo. Mas ele não funcionou. Eu te disse na época que faltavam alguns arquivos, dava alguns erros, mas depois vc não me respondeu mais.

Existe algum jeito de fazer isto funcionar? Será que alterando diretamente (manualmente) o regedit funciona?

Obrigado

Inacio

Re: desabilitando CTRL-ALT-DEL via xHarbour

MensagemEnviado: 12 Ago 2009 17:14
por sygecom
Olá Inacio,

Inacio escreveu:Eu te disse na época que faltavam alguns arquivos, dava alguns erros, mas depois vc não me respondeu mais.

Meu e-mail mudou, o novo e-mail está na minha assinatura, não recebi esse recado, pelo menos não lembro de ter recebido.

Na duvida baixei e compilei de novo, e deu tudo certo. Deve ser sua instalação do xHarbour ou do BCC que está com o PATH errado ou algo assim.
Você consegue compilar com xharbour normal seu aplicativo ?
Qual erro está dando ?

Leonardo Machado

Re: desabilitando CTRL-ALT-DEL via xHarbour

MensagemEnviado: 12 Ago 2009 18:14
por Inacio
Pois é, acho que era este mesmo o problema, pois agora funcionou.

Por favor, dê-me mais uma informação: este teu programa funciona também para desabilitar a opção de fechar o programa no X? No clipper eu tinha um função buttonx, fornecida por alguém do grupo do Maurílio, que desabilita o botão X da janela.

Já constatei que essa função também funciona no Xharbour. Mas ela tem um problema: ela desabilita o botão X, mas não impede que o usuário feche o programa teclando com o botão direito na barra de tarefas e mandando fechá-lo.

Vi que tua função tem a opção de desabilitar o Taskbar, mas eu não queria algo tão radical. Bastaria tirar a possibilidade de fechar o programa na barra de tarefas.

Será que dá pra fazer isto com a tua função?

Obrigado.

Inacio

Re: desabilitando CTRL-ALT-DEL via xHarbour

MensagemEnviado: 12 Ago 2009 19:02
por sygecom
Copie o codigo abaixo e cole dentro de um .PRG do seu sistema e no inicio do .PRG principal ou seja na abertura do seu sistema coloque a seguinte linha:
TIRA_X()
Isso vai desabilitar o X da janela.

#pragma BEGINDUMP

#include "windows.h"
#include "shlobj.h"
#include "hbapi.h"
#include "math.h"
#include "hbvm.h"
#include "hbstack.h"
#include "hbapiitm.h"
#include "hbapigt.h"

HB_FUNC ( SHOWTASKBAR )      //Habilita o botao INICIAR
{
  HWND hWnd = FindWindow("Shell_TrayWnd", "");

  ShowWindow( hWnd, 1 );
}

HB_FUNC ( HIDETASKBAR )     //Desabilita o botao Iniciar
{
  HWND hWnd = FindWindow("Shell_TrayWnd", "");

  ShowWindow( hWnd, 0 );
}

HB_FUNC ( PISCA_EXE )      // VAI PISCAR O SEU EXE NA BARRA
{
    HWND  Handle = GetForegroundWindow();

    FlashWindow(Handle,TRUE); // VAI PISCAR O SEU EXE NA BARRA

    Sleep(300);    // TEMPO DE ESPERA
}

HB_FUNC ( TIRA_X )        // DESABILITA O X da janela

{
    HMENU MenuH = GetSystemMenu(GetForegroundWindow(),FALSE);

    EnableMenuItem(MenuH,SC_CLOSE,MF_GRAYED);
}

#pragma ENDDUMP

Re: desabilitando CTRL-ALT-DEL via xHarbour

MensagemEnviado: 12 Ago 2009 19:31
por Inacio
Realmente tirou o X. Mas ele só fez o mesmo que o buttonx já fazia, ou seja, tirou o X da janela.

Mas eu precisava também tirar a possibilidade de fechar o programa clicando na barra de tarefas. Entende?

Inacio

Re: desabilitando CTRL-ALT-DEL via xHarbour

MensagemEnviado: 12 Ago 2009 19:37
por Maligno
No código do Leonardo, troque a linha:

EnableMenuItem(MenuH,SC_CLOSE,MF_GRAYED);


por...

DeleteMenu(MenuH,SC_CLOSE,MF_BYCOMMAND);


Aí sim, você poderá não só desabilitar o "X" da janela, como também remover ao mesmo tempo o ítem de menu de contexto da janela e, claro, do menu do botão na "TaskBar".

Re: desabilitando CTRL-ALT-DEL via xHarbour

MensagemEnviado: 12 Ago 2009 20:01
por Inacio
Resolveu, meu caro.

Vocês são feras mesmo.

Muito obrigado.

Inacio

Re: desabilitando CTRL-ALT-DEL via xHarbour

MensagemEnviado: 28 Ago 2009 13:21
por Netavin
Olá amigos do Forum !
Caro colega Maligno ... mudei a linha sugerida por vc. Porém, o ALT+CTRL_DEL ainda me permite fechar o aplicativo.

Uso xHarbour , XP.

Abraço !

Netavin

Re: desabilitando CTRL-ALT-DEL via xHarbour

MensagemEnviado: 28 Ago 2009 15:56
por Maligno
O código que passei não tem nada a ver com Ctrl+Alt+Del. Ele só remove o fechamento da janela pelo menu da própria. Pra bloquear Ctrl+Alt+Del o buraco é mais embaixo. :)

Re: desabilitando CTRL-ALT-DEL via xHarbour

MensagemEnviado: 29 Ago 2009 12:09
por sygecom
Netavin escreveu:mudei a linha sugerida por vc. Porém, o ALT+CTRL_DEL ainda me permite fechar o aplicativo.

Olá Netavin,
A linha indicada pelo Maligno é sobre o X da Janela e não sobre o CTRL+ALT+DEL.
Você deixou a DLL junto na pasta onde você esta compilando o exemplo ? Esta dando algum erro ao compilar ?

Re: desabilitando CTRL-ALT-DEL via xHarbour

MensagemEnviado: 29 Ago 2009 12:50
por Inacio
O código que o Leonardo havia passado anteriormente desabilita o CTRL-ALT-DEL.

Inacio

Re: desabilitando CTRL-ALT-DEL via xHarbour

MensagemEnviado: 29 Ago 2009 13:17
por Netavin
ok ...
desculpe a falha !

Abraço!
Netavin

Re: desabilitando CTRL-ALT-DEL via xHarbour

MensagemEnviado: 24 Ago 2010 09:51
por Netavin
Bom dia pessoal!

Estive ausente da empresa por alguns meses.
Ao retornar, estou verificando que a função que desabilita o "x" não funciona mais.
Alguém poderia me informar se é possível isso rsrs; ou talvez alguma configuração de ambiente tenha sido alterado, se é que isso faz diferença...

[]´s
Netavin

Re: desabilitando CTRL-ALT-DEL via xHarbour

MensagemEnviado: 24 Ago 2010 13:34
por ANDRIL
Amigos, em relação ao CTRL-ALT-DEL, pode-se desabilita-lo diretamente no registro do windows.

Desativando o Gerenciador de tarefas (CTRL+ALT+DEL)

Chave:[HKEY_CURRENT_USER\Software\Microsoft\Windows\Curre ntVersion\Policies\System]
Nome: DisableTaskMgr
Tipo:Valor DWORD
Valor:0=ativado, 1=desativado


Se o [x]Harbour tiver funções de manipulações de registro, pode-se criar uma função que ao abrir o sistema desabilite-o. Acho que o WAPI.EXE do nosso amigo Maligno tem tratamento ao registro do windows.

PS: Não testei esse procedimento ainda, li em algum lugar da NET, por favor de um retorno se funcionou.

Abraços

Re: desabilitando CTRL-ALT-DEL via xHarbour

MensagemEnviado: 24 Ago 2010 14:52
por alxsts
Olá!

Para um "clippeiro", achei o assunto interessante...

Tem uma lista das funções da API do Windows, separada por categoria.

Re: desabilitando CTRL-ALT-DEL via xHarbour

MensagemEnviado: 24 Ago 2010 15:02
por Maligno
Não acompanhei mais o tópico, por isso, posso estar fazendo chover no molhado. Mas para bloquear qualquer tecla, incluindo Ctrl+Alt+Del, usa-se um hook de teclado.

Funções: SetWindowsHookEx() e sua contra-partida UnhookWindowsHookEx(), da API do Windows. Detalhe: há muitos exemplos de uso na Net, em C. Descarte SetWindowsHook(), que é considerada obsoleta.

Re: desabilitando CTRL-ALT-DEL via xHarbour

MensagemEnviado: 24 Ago 2010 15:44
por ANDRIL
Alxsts, sabe me dizer se estas funções da API do Windows podem ser usadas com [x]Harbour + HwGui, dei uma olhada e vi que a GetKeyState() e a Keybd_event() tem disponiveis na HwGui. Ou se tem alguma função shell nela que permita chamar esta funções diretamente, passando-as como parametro.

Se tiver como, será bom demais.

Ate+

Re: desabilitando CTRL-ALT-DEL via xHarbour

MensagemEnviado: 24 Ago 2010 16:34
por alxsts
Olá!

Caro Andril:

sou leigo no assunto. Aliás, este tópico é que despertou meu interesse.

Não sei se entendi direito o exemplo acima, postado pelo Leonardo (Sygecom). Parece que entre #pragma BEGINDUMP e #pragma ENDDUMP, podemos escrever funções em C++ invocando a API do Windows e depois chamá-las de nossas aplicações [x]Harbour.

Creio que o Maligno poderá nos ajudar. Só não sei se ó assunto está ou não sendo desviado...

Re: desabilitando CTRL-ALT-DEL via xHarbour

MensagemEnviado: 24 Ago 2010 16:38
por alxsts
Olá!

Leonardo:

Tentei baixar o anexo de seu primeiro post no tópico e:
Virus was detected in the content (virus_detected) 

Content contained "App/Winlock-A" virus. Details: Virus: App/Winlock-A; File: file.php; Sub File: \desabilita_tela_teclas/WinLockDll.dll; Vendor: Sophos, Plc.; Engine error code: 537133571; Engine version: 3.10.0; Pattern version: 4.56E.1874228.1785688352; Pattern date: 2010/08/24 11:40:00 


For assistance, contact your network support team
Não sei se o problema é o nosso antivírus ou se está mesmo contaminado.

Re: desabilitando CTRL-ALT-DEL via xHarbour

MensagemEnviado: 24 Ago 2010 16:40
por Netavin
Fiquei feliz em trazer à tona um assunto que despertou outrora, a curiosidade de muitos e que hoje ainda o faz.
Porém, sobre minha indagação ... rsrs
Fico na expectativa.

[]´s
Netavin

Re: desabilitando CTRL-ALT-DEL via xHarbour

MensagemEnviado: 24 Ago 2010 16:43
por Maligno
Creio que o Maligno poderá nos ajudar.

No que diz respeito a C, sim (melhor seria um tópico próprio). Mas sobre os detalhes do [x]Harbour não posso ajudar muito. Mas é só olhar o help e os códigos exemplo dele, ou mesmo algum código já postado no fórum. E depois fazer algumas experiências. É uma dúvida fácil de matar.

Re: desabilitando CTRL-ALT-DEL via xHarbour

MensagemEnviado: 24 Ago 2010 16:49
por Maligno
PS: Não testei esse procedimento ainda, li em algum lugar da NET, por favor de um retorno se funcionou.

Talvez no Win98, mas no XP não funciona. Precisa ser por hook.

Re: desabilitando CTRL-ALT-DEL via xHarbour

MensagemEnviado: 24 Ago 2010 16:52
por Maligno
Netavin escreveu:Fiquei feliz em trazer à tona um assunto que despertou outrora, a curiosidade de muitos e que hoje ainda o faz.
Porém, sobre minha indagação ... rsrs

Ao ler essa mensagem, que eu encontrei pela busca do fórum, acredito que seu problema poderá ser resolvido. Mas se a dúvida persistir, por favor, abra outro tópico. Assim não misturamos os assuntos. :)

Re: desabilitando CTRL-ALT-DEL via xHarbour

MensagemEnviado: 24 Ago 2010 17:07
por Maligno
alxsts escreveu:Parece que entre #pragma BEGINDUMP e #pragma ENDDUMP, podemos escrever funções em C++ invocando a API do Windows e depois chamá-las de nossas aplicações [x]Harbour.

Exatamente, conforme o Leonardo já havia exemplificado nesta mensagem.

Re: desabilitando CTRL-ALT-DEL via xHarbour

MensagemEnviado: 24 Ago 2010 17:09
por Maligno
alxsts escreveu:Não sei se o problema é o nosso antivírus ou se está mesmo contaminado.

Acabo de testar. Está vindo sem problema, sem qualquer aviso do AVG.

Re: desabilitando CTRL-ALT-DEL via xHarbour

MensagemEnviado: 24 Ago 2010 17:12
por alxsts
Olá!

Grato Maligno.

Deve ser bloqueio da rede da empresa. Vou verificar em casa.