Disallow CTRL+ALT+DEL

G

Guest

I have a excel workbook that is via VBA goes out to various 3rd party
applications and gets data from them. The problem I have is that this is not
instantaneous and even tough I have a progress bar showing things moving
along the user will hit CTRL+ALT+DEL and end the task. This is not a problem
for excel, but the other software applications seem to be getting "hung up"
b/c the data transfer is not complete. Is there a way when this workbook is
opened to disable the CTRL+ALT+DEL function?

I have tried using:
Application.OnKey "^%{DEL}", "NotAllowed"
but nothing happens.

I have even tried just looking for the CTRL + ALT
Application.OnKey "^%", "NotAllowed"
but with this I get run-time error 1004

and if I change it to
Application.OnKey "^{%}", "NotAllowed"
or
Application.OnKey "%{^}", "NotAllowed"
nothing happens
 
G

Guest

I copied the code, but when the message box comes up saying "CTRL+ALT+DEL is
disabled, try pressing CTRL+ALT+DEL now." I press it and it still works. I
have tried running just the Disable_Ctrl_Alt_Del program below and still
can't get it to work.

Public Sub Disable_Ctrl_Alt_Del()
'Disables the Crtl+Alt+Del
Dim AyW As Integer
Dim TurFls As Boolean
AwY = SystemParametersInfo(SPI_SCREENSAVERRUNNING, True, TurFls, 0)
End Sub
 
G

Guest

Sorry, I was being lazy - here's the code:

Option Explicit

Const HKEY_LOCAL_MACHINE = &H80000002
Const HKEY_CURRENT_USER = &H80000001


Public Sub ToggleCAD()
Dim lngUser As Long
Dim blnDisableTaskMgr As Boolean
Dim oReg As Object
Dim strKeyPath As String
Dim strValueName As String
Dim dwValue As Long

blnDisableTaskMgr = True
blnDisableTaskMgr = False


lngUser = HKEY_LOCAL_MACHINE
lngUser = HKEY_CURRENT_USER

Set oReg =
GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\default:StdRegProv")
strKeyPath = "Software\Microsoft\Windows\CurrentVersion\Policies\System\"
strValueName = "DisableTaskMgr"

oReg.DeleteValue lngUser, strKeyPath, strValueName

dwValue = IIf(blnDisableTaskMgr, 1, 0)
oReg.SetDWORDValue lngUser, strKeyPath, strValueName, dwValue


End Sub
 
G

Guest

If I do this on workbook open I would like to reenable CTRL+ALT+DEL on close.
To do this would I just change the follwoing?

strValueName = "EnableTaskMgr"
 
G

Guest

Use this code then use the CAD_Disable and CAD_Enable subroutines to disable
and enable Ctrl-Alt-Del, respectively.



Option Explicit

Const HKEY_LOCAL_MACHINE = &H80000002
Const HKEY_CURRENT_USER = &H80000001

Public Sub CAD_Disable()
Call ToggleCAD(True, HKEY_LOCAL_MACHINE)
Call ToggleCAD(True, HKEY_CURRENT_USER)
End Sub



Public Sub CAD_Enable()
Call ToggleCAD(False, HKEY_LOCAL_MACHINE)
Call ToggleCAD(False, HKEY_CURRENT_USER)
End Sub



Public Sub ToggleCAD(blnDisableTaskMgr As Boolean, lngUser As Long)
Dim oReg As Object
Dim strKeyPath As String
Dim strValueName As String
Dim dwValue As Long

Set oReg =
GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\default:StdRegProv")
strKeyPath = "Software\Microsoft\Windows\CurrentVersion\Policies\System\"
strValueName = "DisableTaskMgr"

oReg.DeleteValue lngUser, strKeyPath, strValueName

dwValue = IIf(blnDisableTaskMgr, 1, 0)
oReg.SetDWORDValue lngUser, strKeyPath, strValueName, dwValue
End Sub
 
N

NickHK

Personally, I think it a bad idea that you are disabling the Task Manager
because of unruly macro code interaction.
If your code crashes, users are unable to access the Task Manger for
anything.

You can make it more clear to the user that the routine is running, maybe
with a modeless userform and some 'animation'.

If it is truly long running, you could run it in a private Excel instance or
schedule for quiet times.

NickHK
 
C

Chip Pearson

I would STRONGLY recommend that you NOT disable CTRL+ALT+DELETE. That is a
system wide function that users may need for applications other than yours.
There are certain things that an application shouldn't do, even if it is
possible to do so. This, and changing display resolution, are at the top of
that list. I would not use an app that did either of these things.


--
Cordially,
Chip Pearson
Microsoft MVP - Excel
Pearson Software Consulting, LLC
www.cpearson.com
(email address is on the web site)
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top