Deshabilitar la tecla de Windows  

Enviado Por: Pedro Osmani Paz Rodríguez
Web : N.A.
Email: pedroosmani@esimtz.co.cu
Fecha: 16/01/04

Truco accedido 66 veces

 


Este truco es para NT, Win 2000 y Xp.
This tip is for NT, Win 2000 and Xp.

Añade Registry al uses de tu form


 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;



Nota: Se necesita reiniciar la Windows para que tengo efecto.

Es todo.
Esto ha sido probado en los windows que comente arriba, no lo he probado en los demas windows.
Espero que sea de buen gusto. Cualquier problema con los fragmentos del programa hacermelo llegar (Por favor).


Actualizado el 16/01/2004 Por fallos tipográficos. Gracias a M okissf (mokissf@yahoo.es)