Desactivar la combinación de teclas Ctrl+Alt+Supr
Artículo por Club Developers · 01 marzo 2006
5127 vistas
Veamos qué código nos puede permitir desactivar la combinación Ctrl+Alt+Supr
Cabe destacar que la acción a realizar dependerá de la versión de Windows, por lo que primero tendremos que determinarla:
Y ahora una función para activar o desactivar la gestión de la combinación de teclas:
Cabe destacar que la acción a realizar dependerá de la versión de Windows, por lo que primero tendremos que determinarla:
delphi
(******************************************************************************) (* Función para determinar la versión de Windows *) (* Devuelve True si la versión es Windows NT, 2000, XP, sinó devuelve False *) (******************************************************************************) function DeterminarVersionWindows: Boolean; begin Result := True; case Win32MajorVersion of // 3: Microsoft Windows NT 3.51 4: case Win32MinorVersion of 0: case Win32Platform of 1: Microsoft Windows 95 ou Microsoft Windows 95 OSR2 2: Result := True; else Result := False; end; 10, 90: Result := False; else Result := False; end; 5: case Win32MinorVersion of //2000, XP et 2003 0, 1, 2: Result := True; else Result := False; end; else Result := False; end; end;
Y ahora una función para activar o desactivar la gestión de la combinación de teclas:
delphi
(******************************************************************************) (* función para des/activar la combinación Ctrl+Alt+Supr *) (* Si recibe TRUE, desactiva la combinación *) (******************************************************************************) procedure ControlTaskManager(Desactivar: Boolean); var OldVal: Longint; Reg: Tregistry; begin if Desactiver then // desactivar la combinación de teclas begin if DeterminarVersionWindows then // Si la versión es Windows NT, 2000, XP begin reg := TRegistry.Create; reg.RootKey := HKEY_CURRENT_USER; // Test para saber si la llave del usuario en curso existe if reg.OpenKey('Software\Microsoft\Windows\CurrentVersion\Policies\System', False) then reg.WriteString('DisableTaskMgr', '1') else // si no existe, la creamos begin reg.RootKey := HKEY_CURRENT_USER; reg.OpenKey('Software\Microsoft\Windows\CurrentVersion\Policies\System', True); reg.WriteString('DisableTaskMgr', '1'); end; reg.CloseKey; end else // Si la versión es Windows 95, 98, Me SystemParametersInfo(SPI_SCREENSAVERRUNNING, word(True), @OldVal, 0); end else // activar la combinación de teclas begin if DeterminarVersionWindows then // Si la versión es Windows NT, 2000, XP begin reg := TRegistry.Create; reg.RootKey := HKEY_CURRENT_USER; // Test para saber si la llave del usuario en curso existe if reg.OpenKey('Software\Microsoft\Windows\CurrentVersion\Policies\System', False) then reg.DeleteValue('DisableTaskMgr') else // si no existe, la creamos begin reg.RootKey := HKEY_CURRENT_USER; reg.OpenKey('Software\Microsoft\Windows\CurrentVersion\Policies\System', True); reg.DeleteValue('DisableTaskMgr'); end; reg.CloseKey; end else // Si la versión es Windows 95, 98, Me SystemParametersInfo(SPI_SCREENSAVERRUNNING, word(False), @OldVal, 0); end; end;