• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

pbreda

[VB6] Ctrl + Alt + Del (Disabled)

25 mensagens neste tópico

Bem... eu desevolvi este codigo para que todas as pessoas tenham rapidamente á sua disposisao o codigo para desablitar o ctr + alt + del...este codigo poderá ter alguns bugs, mas se alguem os resolver por favor informe-me.

Aqui está o codigo:

Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
Dim DelDown, AltDown, CtrlDown, Aplicacao

AltDown = (Shift And vbAltMask) > 0
CtrlDown = (Shift And vbCtrlMask) > 0
DelDown = vbKeyDelete

If AltDown And CtrlDown And DelDown Then
    Aplicacao = Shell("C:\Windows\system32\taskmgr.exe", 0)
    SendKeys "%{F4}", True
ElseIf AltDown Or CtrlDown Or DelDown Then
        Aplicacao = Shell("C:\Windows\system32\taskmgr.exe", 0)
        SendKeys "%{F4}", True
End If
End Sub

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Deixo aqui algumas explicações quanto ao que me parece que este código faz e não faz.

Uso apenas o CTRL+ALT+DEL para bloquear o computador ou mudar a password, pelo que para mim não é útil não ter o CTRL+ALT+DEL desactivado numa aplicação.

Se a ideia é não ter acesso ao Task Manager, então esse código é facilmente ultrapassavel por CTRL+SHIFT+ESC, além de que isso deve ser feito ao nível do sistema, por parametrização, e não apenas dentro de uma aplicação.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Desde já agradeço a critica e a dica do CTRL + SHIFT + ESC. Mas não existe nenhuma maneira de desabilitar o gestor de tarefas em API para windows XP ?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Desde já agradeço a critica e a dica do CTRL + SHIFT + ESC. Mas não existe nenhuma maneira de desabilitar o gestor de tarefas em API para windows XP ?

Boa questão. Sinceramente não sei, talvez isso passe por gerir o acesso ao task manager, ou seja, dizer que determinados utilizadores/perfis não podem invocar a aplicação task manager.

Para ser efectuado "correctamente", terias de dizer ao sistema que determinado utilizador/perfil não pode listar nem matar processos, pois caso contrário não tenho a certesa de que um simples PS KILL de linha de comando não permita matar processos.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Dá para desactivar o Task Manager. Procura no registo pela chave DisableTaskMgr e coloca o valor a 1 e fica desactivo.

Tambem existe um DisableRegistryTools.

Jorge

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

obrigado pela dica Asgorath vou tentar criar uma aplicação com a tua dica.. que irá ser publicada neste post...muito obrigado

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Asgorath, a chave não foi encontrada,eu tenho o sistema operativo XP home..será que me podes informar da chave no XP home?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Estranho nao sabia que havia essa chave nao existia no  xp home, eu tenho a versao pro. procura no google talvez encontres uma chave para isso.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

A chave deve existir mas pode é ter outro nome ou outra localização....já resolvi o problema da chave agora vou começar a criar o programa...obrigado por tudo

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

A chave tens tu de criar, no locar correcto  :P

Podes tambem criar uma função que de x em x tempo verifique se o gestor de tarefas esta a correr, e se estiver, fecha-o. Já  fiz um programa que fazia issu e funcionava bastante bem, embora pareça um pouco n00b  :P

EDIT

Outra forma de fazeres tal coisa, seria fazer um Hook ao teclado.

Cumps

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

tass....e o programa de desabilitar o ctrl + alt + del funciona?

Cumprimentos.....

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

eu descobri este code na net para desabilitar o ctrl + alt + del,mas ao serem reactivados ele nao reactiva...bate mal :S

este modulo desactiva as teclas: alt + tab, alt + esc, ctrl + esc (penso k é isto)

Option Explicit

Public Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (Destination As Any, Source As Any, ByVal Length As Long)
Public Declare Function GetKeyState Lib "user32" (ByVal nVirtKey As Long) As Integer
Public Declare Function SetWindowsHookEx Lib "user32" Alias "SetWindowsHookExA" (ByVal idHook As Long, ByVal lpfn As Long, ByVal hmod As Long, ByVal dwThreadId As Long) As Long
Public Declare Function CallNextHookEx Lib "user32" (ByVal hHook As Long, ByVal nCode As Long, ByVal wParam As Long, lParam As Any) As Long
Public Declare Function UnhookWindowsHookEx Lib "user32" (ByVal hHook As Long) As Long
Public Const HC_ACTION = 0
Public Const WM_KEYDOWN = &H100
Public Const WM_KEYUP = &H101
Public Const WM_SYSKEYDOWN = &H104
Public Const WM_SYSKEYUP = &H105
Public Const VK_TAB = &H9
Public Const VK_ESCAPE = &H1B

Public Const VK_SHIFT = &H10    'SHIFT key
Public Const VK_CONTROL = &H11  'CTRL key
Public Const VK_MENU = &H12     'ALT key

Public Const VK_LWIN = &H5B  'Left Windows key (Microsoft® Natural® keyboard)
Public Const VK_RWIN = &H5C  'Right Windows key (Natural keyboard)
Public Const VK_APPS = &H5D  'Applications key (Natural keyboard)
'VK_LAUNCH_MAIL B4 Windows 2000: Start Mail key
'VK_LAUNCH_MEDIA_SELECT B5 Windows 2000: Select Media key
'VK_LAUNCH_APP1 B6 Windows 2000: Start Application 1 key
'VK_LAUNCH_APP2 B7 Windows 2000: Start Application 2 key


Public Const WH_KEYBOARD_LL = 13
Public Const LLKHF_ALTDOWN = &H20

Public Type KBDLLHOOKSTRUCT
    vkCode As Long
    scanCode As Long
    flags As Long
    time As Long
    dwExtraInfo As Long
End Type

Dim p As KBDLLHOOKSTRUCT

Public Function LowLevelKeyboardProc(ByVal nCode As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
   Dim fEatKeystroke As Boolean
   
   If (nCode = HC_ACTION) Then
      If wParam = WM_KEYDOWN Or wParam = WM_SYSKEYDOWN Or wParam = WM_KEYUP Or wParam = WM_SYSKEYUP Then
         CopyMemory p, ByVal lParam, Len(p)
         fEatKeystroke = _
            p.vkCode = VK_LWIN Or _
            p.vkCode = VK_RWIN Or _
            p.vkCode = VK_APPS Or _
            p.vkCode = VK_CONTROL Or _
            p.vkCode = VK_SHIFT Or _
            p.vkCode = VK_MENU Or _
            ((GetKeyState(VK_CONTROL) And &H8000) <> 0) Or _
            ((p.flags And LLKHF_ALTDOWN) <> 0)
        End If
    End If
    
    If fEatKeystroke Then
        LowLevelKeyboardProc = -1
    Else
        LowLevelKeyboardProc = CallNextHookEx(0, nCode, wParam, ByVal lParam)
    End If
End Function

Form agora:

Option Explicit

Dim hhkLowLevelKybd As Long

Private Sub chkDisable_Click()
    If chkDisable = vbChecked Then
        hhkLowLevelKybd = SetWindowsHookEx(WH_KEYBOARD_LL, AddressOf LowLevelKeyboardProc, App.hInstance, 0)
    Else
        UnhookWindowsHookEx hhkLowLevelKybd
        hhkLowLevelKybd = 0
    End If
End Sub

Private Sub Form_Unload(Cancel As Integer)
If hhkLowLevelKybd <> 0 Then UnhookWindowsHookEx hhkLowLevelKybd
End Sub

espero k tenha ajudado =S

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

pois... mas o programa k fiz tbm funciona e é muito mais facil de o criar....;)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

pois... mas o programa que fiz tbm funciona e é muito mais facil de o criar....;)

sim senhor,nao kero desvalorizar o teu trabalho :P

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

tass....e o programa de desabilitar o ctrl + alt + del funciona?

Cumprimentos.....

Funcionou no Windows x64 Professional. :)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Digam-me uma coisa será que dá para melhorar o programa que fiz?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Neste momento o programa fica visível na taskbar, por isso acho que devias melhorar isso, talvez mostrando um simples icon na tray.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Concordo contigo e vou ver o que se pode fazer....devido á minha falta de tempo não sei se irei faze-lo rapidamente mas vou tentar. Mais alguma sugestão?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

pbreda será k podes escrever o link de download do programa é k eu fui ao teu site mas nao esta a dar para fazer o download...

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora