![]() |
![]() |
![]() |
![]() |
![]() |
FTP | ![]() |
![]() |
CCD | ![]() |
![]() |
Buscar | ![]() |
![]() |
Trucos | ![]() |
![]() |
Trabajo | ![]() |
![]() |
Foros | ![]() |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
![]() |
|
Herramientas | Buscar en Tema | Desplegado |
|
#1
|
|||
|
|||
Desactivar teclas de función en todo el sistema
Tengo una aplicación en la que necesito desactivar algunas teclas de función, para que no produzcan ningún efecto en otra aplicación externa, de uso y distribución gratuitos, que ejecuto desde mi aplicación y muestro dentro de la ventana principal de ésta, con el objeto de que el usuario no pueda acceder a determinadas funciones de dicha aplicación a través del teclado (creo que me he explicado bien, si no decidmelo). He probado con hooks para interceptar las pulsaciones de dichas teclas de función a nivel de sistema, pero, no se por qué, solo funcionan si el foco está en mi aplicación, con lo cual no me sirve para nada (no se si el código que encontré no estaba correcto o yo lo hice mal, pero creo que lo hice bien). He buscado y rebuscado en otros hilos y no he encontrado más que los susodichos hooks y una función que desactiva todo el teclado y el ratón, lo cual no me sirve. A ver si alguien puede ayudarme con esto. ¡Gracias de antemano! Aviso que no soy un programador experto sino solo aficionado.
|
#2
|
||||
|
||||
O sea, quieres que desde tu programa desactivar las teclas de función de otro programa que no es tuyo ni tienes el código, ¿es eso?
__________________
La otra guía de estilo | Búsquedas avanzadas | Etiquetas para código | Colabora mediante Paypal |
#3
|
||||
|
||||
Cita:
No da muchos detalles de las 2 aplicaciones, ni de qué teclas quieres desactivar. Tampoco explicas qué código has utilizado "que no te funciona". Cita:
Yo sigo pensando que la solución son los hooks de teclado a nivel de sistema. De otra forma sólo funcionarán cuando tu aplicación esté abierta. Hay diferentes hilos en los foros que hablan sobre el tema, si buscas encontrarás. Había hace tiempo un componente de [Roman] que solucionaba esto, y aunque actualmente la web no está disponible, "tirando" de WayBackMachine, se puede acceder a ella. Revisa este enlace: https://web.archive.org/web/20050908...m/users/roman/ Y concretamente a este componentes (dentro está la explicación): https://web.archive.org/web/20050214...oman/hooks.php
__________________
Germán Estévez => Web/Blog Guía de estilo, Guía alternativa Utiliza TAG's en tus mensajes. Contactar con el Clubdelphi ![]() P.D: Más tiempo dedicado a la pregunta=Mejores respuestas. |
#4
|
|||
|
|||
Tienes razón
Tienes razón Neftalí, no doy indicaciones de que aplicaciones se trata porque no lo creía necesario. Y en cuanto a lo de raro, te aseguro que no se trata de nada raro, solo incorporo una aplicación de lectura de PDF gratuita a mi aplicación, pero no quiero que el PDF, que es original mío, lo puedan imprimir ni tampoco capturar la pantalla, ni interrumpir el proceso mediante ctrl+alt+supr. Esto último lo solucioné sin hooks de teclado, cerrando mediante un timer, la ventana del administrador de tareas en cuanto esta se abre. Lo de imprimir también mediante la misma técnica, pero hay otra funciones del software gratuito, a las que se accede por menú que aparece al pulsar determinadas teclas de función y que no se pueden bloquear de esta forma, o al menos yo no he podido. Son funciones como la de guardar el PDF, abrirlo con Adobe reader etc..., lo cual le daría paso al usuario a todo lo que quiera hacer con el PDF y que no debe poder hacer, para lo cual, originalmente está incrustado en el ejecutable de mi aplicación. Por eso necesito bloquear algunas o todas las teclas de función (F1 a F12) y que su pulsación no llegue al programa lector de PDF, independientemente de que el foco esté en él o no.
Última edición por buenarquero fecha: 01-07-2024 a las 16:31:44. |
#5
|
|||
|
|||
Enlaces
En cuanto a los links que incluyes, el primero no tiene activo el enlace a la parte de hooks y el segundo, parece que solo ofrece solución para determinadas teclas o combinaciones, pero no para las teclas de función, al menos yo veo como se podría adaptar para que sirva para las teclas de función.
|
#6
|
||||
|
||||
Cita:
Por un lado, porque al final me parece muy difícil (por no decir imposible) poder controlar todas esas opciones. Al final en los sistema actuales (S.O.) hay tantas opciones que le veo agujeros de funcionamiento. Hay aplicaciones de terceros (capturadores de pantalla, administradores de procesos/tareas,...) que pueden sustituir a las originales que no veo forma de bloquearlos. Incluso pueden cambiar las teclas predefinidas para determinadas operaciones, por lo tanto capturar el PRINTPANTALLA o el CTRL+ALT+SUPR tampoco te asegura nada. Por otro lado, me parece peligroso "bloquear" determinadas teclas que pueden afectar a otros aspectos del sistema, digamos que estás excediendo los límites de tu aplicación (por decirlo de alguna manera).
__________________
Germán Estévez => Web/Blog Guía de estilo, Guía alternativa Utiliza TAG's en tus mensajes. Contactar con el Clubdelphi ![]() P.D: Más tiempo dedicado a la pregunta=Mejores respuestas. |
#7
|
||||
|
||||
No sé si lo que buscas lo cubre la firma digital del documento.
Siempre podrán como comentan hacerle una foto o echar una tarde y transcribir de pé a pá el documento completo. Suerte, y nos comentas cómo lo has solucionado. Saludos
__________________
Cuando los grillos cantan, es que es de noche - viejo proverbio chino - |
#8
|
||||
|
||||
Cita:
![]() Pero es que se pueden personalizar o simplemente se puede lanzar la copia utilizando el menú contextual de la aplicación desde la barra de tareas. Hay tantas alternativas, que por eso me parece un enfoque que no tiene buena salida.
__________________
Germán Estévez => Web/Blog Guía de estilo, Guía alternativa Utiliza TAG's en tus mensajes. Contactar con el Clubdelphi ![]() P.D: Más tiempo dedicado a la pregunta=Mejores respuestas. |
#9
|
|||
|
|||
código que usé
Cita:
Transcribo el código que usé para los hooks. A ver si lo hago bien porque no lo he hecho nunca y no se si cumplirá las recomendaciones del foro. El código lo saqué de Trucos Delphi, si no recuerdo mal. INTERCEPTAR EL TECLADO MEDIANTE HOOKS Declarar variables
Última edición por Neftali [Germán.Estévez] fecha: 02-07-2024 a las 09:19:32. Razón: Añadir TAGs al código |
#10
|
|||
|
|||
Me parece que es imposible de hacer
No termino de entender por qué alguien querría evitar que capturen la pantalla. ¿y si le sacan una foto a la pantalla? ¿y si el software corre virtualizado y hacen captura de pantalla en la PC host? ¿si corren algún software de captura automática de pantalla o de grabación del estilo de OBS? Es imposible enviar que se capture la pantalla, si se muestra, se puede capturar.
Saludos |
#11
|
||||
|
||||
Cita:
__________________
La otra guía de estilo | Búsquedas avanzadas | Etiquetas para código | Colabora mediante Paypal |
![]() |
|
|
![]() |
||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Detectar pulsación de teclas Ctrl, Alt y Shift y teclas virtuales (de función,...) | rrf | Varios | 11 | 09-08-2017 13:24:21 |
Aparece símbolo de moneda en todo el sistema | Oscar Guzmán | OOP | 3 | 23-03-2015 07:07:55 |
Desactivar y activar sonido del sistema | nandynna | API de Windows | 5 | 08-01-2009 00:12:21 |
como desactivar las teclas Alt o Ctrl | Hitsugaya | API de Windows | 2 | 03-12-2008 20:13:41 |
Teclas de Función | Dado de baja | Varios | 2 | 05-09-2007 15:02:07 |
![]() |
|