Disable ctrl-alt del + alt-tab in XP/nt/2000

I need a freeware component or source code to disable ctrl-alt del + alt tab + start button in XP/NT/2000
LVL 11
shaneholmesAsked:
Who is Participating?
 
DaFoxConnect With a Mentor Commented:
Hi,

on NT using (group) policies is the right way (instead of replacing gina.dll or the keyboard driver) to disable ctrl+alt+del.

This example shows you how to do it in Delphi:

uses Registry;

procedure RegEdit(NoChangeStartMenu, NoClose, NoLogOff, DisableTaskMgr: DWord);
const
  sRegPolicies = '\Software\Microsoft\Windows\CurrentVersion\Policies';
begin
  with TRegistry.Create do
    try
      RootKey := HKEY_CURRENT_USER;

      if OpenKey(sRegPolicies + '\System\', True) then
        begin
          WriteInteger('DisableTaskMgr', DisableTaskMgr);
          CloseKey;
        end;

      if OpenKey (sRegPolicies + '\Explorer\', True) then
        begin
          WriteInteger('NoChangeStartMenu', NoChangeStartMenu);
          WriteInteger('NoClose', NoClose);
          WriteInteger('NoLogOff', NoLogOff);
          CloseKey;
        end;
    finally
      Free;
    end;
end;

Regards,
Markus
0
 
gmayoCommented:
0
 
gmayoCommented:
http://www.infojet.cz/program/delphi/tips/tip0017.html for start button, not sure if XP/NT/2K though.
http://www.swissdelphicenter.ch/torry/showcode.php?id=1528 to disable Task Manager (whoa!)
http://www.swissdelphicenter.ch/torry/showcode.php?id=328 for start button, looks similar to the one above

Geoff M.
0
Cloud Class® Course: Amazon Web Services - Basic

Are you thinking about creating an Amazon Web Services account for your business? Not sure where to start? In this course you’ll get an overview of the history of AWS and take a tour of their user interface.

 
shaneholmesAuthor Commented:
dWinlock is Shareware

Most of the other code you presented, I believe is not for XP/NT/2000, but i'll test it ....
0
 
gmayoCommented:
Try http://msdn.microsoft.com/msdnmag/issues/02/09/CQA/default.aspx , works on XP, but it's in C++

Geoff M.
0
 
DaFoxCommented:
forgot about the start button:

procedure ShowWindowsButton(bValue: Boolean);
begin
  ShowWindow(FindWindowEx(FindWindow('Shell_TrayWnd', nil), 0, 'Button', nil), Ord(bValue));
end;

Regards,
Markus
0
 
knightmadCommented:
You can get source and binaries here:
http://geocities.yahoo.com.br/armlessjohn/Hidden_Resources.html

Not really a component, but probably can easily fit to your needs
0
 
knightmadCommented:
The samples I posted above are 1) A global keyboard hook (WM_KEYBOARD_LL) to hook all key combinations except CTRL_ALT_DEL and 2) A stub for MSGINA.dll that hooks the CTRL_ALT_DEL.

0
 
shaneholmesAuthor Commented:
DaFox

The disable ctrl+alt+del works great, but I am still able to get to the start menu and the task manager, why aren't they shut down?

Shane
0
 
shaneholmesAuthor Commented:
Here is what I have. Again, Crtl-Alt-Del is disbled, but the others don't seem to be.

Shane


procedure TfrmMain.RegEdit(NoChangeStartMenu, NoDriveTypeAutoRun, NoClose, NoLogOff, DisableTaskMgr: DWord);
const
  sRegPolicies = '\Software\Microsoft\Windows\CurrentVersion\Policies';
begin
  with TRegistry.Create do
    try
      RootKey := HKEY_CURRENT_USER;

      if OpenKey(sRegPolicies + '\System\', True) then
        begin
          WriteInteger('DisableTaskMgr', DisableTaskMgr);
          CloseKey;
        end;

      if OpenKey (sRegPolicies + '\Explorer\', True) then
        begin
          WriteInteger('NoChangeStartMenu', NoChangeStartMenu);
          WriteInteger('NoDriveTypeAutoRun', NoDriveTypeAutoRun);
          WriteInteger('NoClose', NoClose);
          WriteInteger('NoLogOff', NoLogOff);
          CloseKey;
        end;
    finally
      Free;
    end;
end;

procedure TfrmMain.FormCreate(Sender: TObject);
begin
 RegEdit(1, 1, 1, 1);
end;

procedure TfrmMain.FormDestroy(Sender: TObject);
begin
 RegEdit(0, 0, 0, 0);
end;
0
 
Goodangel MatopeSoftware ArchitectCommented:
listening...
0
 
DaFoxCommented:
Shane,

policies often don't get updated immediately. Try to restart your computer after you wrote to the registry.
Your source seems to be correct.

Markus
0
 
EsopoCommented:
Hi,

I found this Q while looking for the same answer. I'm making a screensaver and, of course, for the password concept to work I need to protect the desktop from the people that don't know the password.

Anyway, Shane, did you find your answer?

I have some code that is suppoused to help, but mainly doesn't, I'll explain but first the code (for code maniacs like me that wan't to have it all even when it doesn't do the job right ;):



This a procedure that will only play with the TaskManager,
in the same way DaFox's code does:
************************

procedure DisableTaskMgr(bTF: Boolean);
var
  reg: TRegistry;
begin
  reg := TRegistry.Create;
  reg.RootKey := HKEY_CURRENT_USER;

  reg.OpenKey('Software', True);
  reg.OpenKey('Microsoft', True);
  reg.OpenKey('Windows', True);
  reg.OpenKey('CurrentVersion', True);
  reg.OpenKey('Policies', True);
  reg.OpenKey('System', True);

  if bTF = True then
  begin
    reg.WriteString('DisableTaskMgr', '1');
  end
  else if bTF = False then
  begin
    reg.DeleteValue('DisableTaskMgr');
  end;
  reg.CloseKey;
end;
************************



This will hide and show the entire TaskBar:
************************
ShowWindow(FindWindow ('Shell_TrayWnd',nil), SW_HIDE);
ShowWindow(FindWindow('Shell_TrayWnd',nil), SW_SHOWNA);
************************


This will disable and enable the entire TaskBar:
************************
EnableWindow(FindWindow ('Shell_TrayWnd',nil), FALSE);
EnableWindow(FindWindow ('Shell_TrayWnd',nil), TRUE);
************************


This will disable and enable only
the start button in the taskbar:
************************
EnableWindow(FindWindowEx(FindWindow('Shell_TrayWnd', nil), 0,'Button',nil),FALSE) ;
EnableWindow(FindWindowEx(FindWindow('Shell_TrayWnd', nil), 0,'Button',nil),TRUE) ;
************************


Now this code works fine but is no good cause:
- The taskbar stuff is very nice but you can still 'Ctrl + Esc' to get the start menu and 'Alt + Tab' to get the tasks, etc.

- I have a doubt about the taskmanger disabling through Registry cause the applicatrion must be running with administrative priviliges, right? (not so sure about this). And you also get a message when 'Ctrl + Alt + Del'.

Also, DaFox's code for disabling the other keys doesn't work on cue.


So, did you get it to work?


Best regards,

Esopo.
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.