Ver Mensaje Individual
  #7  
Antiguo 13-10-2008
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Reputación: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Cita:
Empezado por petete2008 Ver Mensaje
La solución de escafandra no se por donde comenzar. Soy novato y sin ningún ejemplo que me guia me cuesta entenderlo. No obstante seguiré investigando.
Gracias.
Aquí tienes un ejemplo. De hecho, ése mismo ejemplo te sirve para lo que quieres con un par de pequeños cambios:

1. Agregar lkPrint al final de la declaración de TLockableKey:

Código Delphi [-]
type
  { Teclas que podemos inhabilitar }
  TLockableKey = (lkAltTab, lkAltEsc, lkCtrlEsc, lkAltF4, lkWin, lkApps, lkPrint);


2. Al final de la función KbdHook agregar el bloque correspondiente a lkPrint:

Código Delphi [-]
function KbdHook(Code: Integer; WParam, LParam: DWORD): HHook; stdcall;
var
  VkCode: DWORD;
  AltDown: Boolean;
  CtrlDown: Boolean;

begin
  if Code = HC_ACTION then
  begin
    VkCode := PKbdHookInfo(LParam).VkCode;
    AltDown := PKbdHookInfo(LParam).Flags and LLKHF_ALTDOWN <> 0;
    CtrlDown := GetAsyncKeyState(VK_CONTROL) and LLKHF_CTRLDOWN <> 0;

    { resto del código }

    if (VkCode = VK_SNAPSHOT) and (lkPrint in Keys) then
    begin
      Result := 1;
      exit;
    end;
  end;

  Result := CallNextHookEx(Hook, Code, WParam, LParam);
end;

// Saludos
Responder Con Cita