procedure TForm1.Button1Click(Sender: TObject);
procedure DeshabilitarTeclaWindows;
{Deshabilitar la Tecla Bandera de Windows}
{ uses registry }
type Buffer = Array[0..23] of Byte;
const
WinKeyData : buffer = ( $00,$00,$00,$00,$00,$00,$00,$00,
$03,$00,$00,$00,$00,$00,$5B,$E0,
$00,$00,$5C,$E0,$00,$00,$00,$00);
var
Reg : TRegistry;
BufferIn : Buffer;
Identificador : HKEY;
Camino, Valor : String;
begin
Identificador :=HKEY_LOCAL_MACHINE; {Clave principal}
Camino:='\SYSTEM\CurrentControlSet\Control\Keyboard Layout';
Valor :='Scancode Map';
Reg := TRegistry.Create;
try
Reg.RootKey := Identificador;
{Escribir un binario}
bufferin := winkeydata;
if Reg.OpenKey(Camino, True) then
begin
Reg.WriteBinaryData(Valor, BufferIN,SizeOf(BufferIN));
end;
finally
Reg.CloseKey;
Reg.Free;
end;
end;
procedure HabilitarTeclaWindows;
{Habilitar la Tecla Bandera de Windows, Borrar el
valor del registro que hemos agregado}
{ Uses Registry }
var
Registry : TRegistry;
Identificador : HKEY;
Camino, Valor : String;
begin
Identificador :=HKEY_LOCAL_MACHINE; {Clave principal}
Camino:='\SYSTEM\CurrentControlSet\Control\Keyboard Layout';
Valor :='Scancode Map';
Registry:=TRegistry.Create;
Registry.RootKey:=Identificador;
if not Registry.OpenKey(Camino, False) then Exit;
{Eliminar el registro creado}
Registry.DeleteValue(Valor);
Registry.Free;
end;
begin
{Deshabilitar la tecla de Windows}
DeshabilitarTeclaWindows;
{Habilitarla de nuevo}
//HabilitarTeclaWindows;
end;
|