Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   API de Windows (https://www.clubdelphi.com/foros/forumdisplay.php?f=7)
-   -   ¿Cómo se Activa/Desactiva la tecla PrintScreen? (https://www.clubdelphi.com/foros/showthread.php?t=15808)

Jose_Pérez 05-11-2004 09:25:30

¿Cómo se Activa/Desactiva la tecla PrintScreen?
 
¿Cómo puedo activar o desactivar la tecla print screen para evitar copiar la pantalla de mi aplicación?

Saludos.

petete2008 12-10-2008 16:39:57

Encontrastes la solucion?
Yo busco lo mismo.
Gracias

escafandra 12-10-2008 22:35:43

Hook al keyboard: WH_KEYBOARD_LL capturando VKEY = VK_SNAPSHOT, ó VK_PRINT

Saludos.

cHackAll 13-10-2008 00:25:13

Cita:

Empezado por petete2008 (Mensaje 319652)
Encontrastes la solucion?
Yo busco lo mismo.
Gracias

Acotando a lo dicho por escafandra solo me queda pedirte que no revivas hilos que datan de tanto tiempo atrás!

Saludos

Lepe 13-10-2008 06:21:28

Cita:

Empezado por cHackAll (Mensaje 319681)
Acotando a lo dicho por escafandra solo me queda pedirte que no revivas hilos que datan de tanto tiempo atrás!

Saludos

¿por qué no? ¿donde está escrito que no deba hacerse? ¿quien lo ha dicho? eh?, eh?:p

Es un hilo antiguo pero no tenía solución.
Lo ha reabierto para tratar la misma temática.


Saludos

petete2008 13-10-2008 12:56:02

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.

roman 13-10-2008 15:25:48

Cita:

Empezado por petete2008 (Mensaje 319717)
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

petete2008 13-10-2008 19:28:37

Muchisimas gracias.
lo he probado y funciona perfecto!!!
Un ejemplo es lo que necesitaba para el arranque y me lo has proporcionado.
Muy agradecido.
:)

cHackAll 13-10-2008 23:45:28

Cita:

Empezado por Lepe (Mensaje 319695)
¿por qué no? ¿donde está escrito que no deba hacerse? ¿quien lo ha dicho? eh?, eh?:p

Es un hilo antiguo pero no tenía solución.
Lo ha reabierto para tratar la misma temática...

Tienes razon Lepe, pero mi comentario consideraba el echo de que petete ya habia abierto un hilo con la misma pregunta.

Saludos

Lepe 14-10-2008 04:53:40

ah, eso no lo sabía yo cHackAll, excuse mua :o

petete2008 14-10-2008 22:15:43

Si, tienes razon, habia abierto un hilo con la misma pregunta.
Mis disculpas!! No volverá a suceder.
Gracias por todo!!

petete2008 16-10-2008 22:51:44

¿ Y se puede inhabilitar la pulsación CTRL+C y CTRL+V siguiendo este metodo?
De donde saco la constante para hacerlo?

petete2008 16-10-2008 22:54:14

Al final lo que voy hacer es un timer y que cada 1 segundo haga un clipboard.clear ya que mi idea erá que no se pudiera usar la papelera para copiar y pegar.
Supongo que no existira una orden magica para desactivarla y no quedará mas remedio que usar un timer.

cHackAll 17-10-2008 02:50:14

Cita:

Empezado por petete2008 (Mensaje 320634)
Al final lo que voy hacer es un timer y que cada 1 segundo haga un clipboard.clear ya que mi idea erá que no se pudiera usar la papelera para copiar y pegar.
Supongo que no existira una orden magica para desactivarla y no quedará mas remedio que usar un timer.

Si éste hilo está relacionado con el que abriste tú (como creo que fue), considero que (como ya te dije en el otro hilo), puedes revisar el contenido del Clipboard para limpiar su contenido siempre y cuando éste sea reconocido como "no apto". Si borras su contenido sin importar su tipo o datos solo conseguiras (como dije en el otro hilo :(), usuarios frustrados.

Talvez si nos cuentas tu probema exacto... en cualquiera de los dos hilos no importa (ya qué mas dá), podremos darte alternativas.

PD; no te respondo en el otro hilo para no quedar más "mareado" :rolleyes:

petete2008 17-10-2008 22:04:10

Lo que busco exactamente es :
Tengo usuarios que acceden por Terminal Server a un servidor.
Lo que pretendo y me gustaría es que esos usuarios no puedan hacer capturas de los datos del programa al cual tienen acceso haciendo uso de la tecla ImprPaint.
Gracias y perdonar por los dos hilos abiertos :$

Jose_Pérez 12-12-2008 15:39:21

Pues si que era antiguo el hilo. Tanto es así que ya ni recuerdo lo que pretendía hacer con esto :D


La franja horaria es GMT +2. Ahora son las 04:21:47.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi