Inhabilitar teclas

Soy novato en seguridad de internet, mi función es más bien el diseño, pero me han encomendado intentar dar la mayor seguridad a unas páginas. Hasta ahora he puesto una identificación de usuario para acceder, inhabilitado el botón derecho del ratón, suprimido las barras de herramientas, suprimido la caché y ahora me piden eliminar la tecla PrintScreen. ¿Es posible hacerlo desde el Navegador IE?. Gracias por estar ahí y ayudar.

1 respuesta

Respuesta
1
Puede que alguna vez mostremos información que no queramos que se pueda copiar al portapapeles para después guardarla o imprimirla. La solución "elegante" sería hacer un hook de teclado que procesara todos los mensajes de teclado del sistema y elimináramos las pulsaciones de la tecla PrintScreen pero esto no se puede hacer desde Visual Basic, debe hacerse desde una dll estándar.
Pero podemos hacer una pequeña "trampa" bloqueando el uso del portapapeles. Para ello declararemos en un módulo :
Declare Function OpenClipboard Lib "user32" (ByVal hwnd As Long) As Long
Declare Function CloseClipboard Lib "user32" () As Long
Declare Function EmptyClipboard Lib "user32" () As Long
En el evento load de la ventana que no queramos que se pueda copiar al portapapeles pondremos :
Dim b As Boolean
b = OpenClipboard(Me.hwnd)
If b Then
b = EmptyClipboard()
End If
Y en el unload de la misma :
Dim b As Boolean
b = CloseClipboard()
Esto cubre nuestras necesidades pero tiene el problema de que el portapapeles no funcionará en todo el sistema hasta que cerremos el formulario.
Otra, no se me ocurre. Fíjate si podes programarlo para que interactue con el explorador usando keybd_event, haciendo Declare Sub keybd_event Lib "user32" (ByVal bVk As Byte, ByVal bScan As Byte, ByVal dwFlags As Long, ByVal dwExtraInfo As Long)
Const KEYEVENTF_KEYUP = &H2
Const VK_LWIN = &H5B
Call keybd_event(VK_LWIN, 0, 0, 0)
Call keybd_event(69, 0, 0, 0)
Call keybd_event(VK_LWIN, 0, KEYEVENTF_KEYUP, 0)
Cuando más leo tu respuesta más cuenta me doy de mi ignorancia. No se como ni donde incluir el módulo que me indicas, solo se de módulos en access, y deseo utilizar la "trampa" en IE y/o en Navigator. Indícame como utilizarlo en ASP o VBScript o JavaScript. Gracias.
Para hacer lo que querés tenés que:
a) Saber programar el VB
b) Disponer de interprete de VB
c) Disponer de SO original
d) Disponer de conocimientos tales como para "personalizar" tu sistema operativo, haciendo los parches de los que este adolece.
Podes ir a www.geocities.com/links_vb/desarrollo_vb_32_bits.htm y empezar a saber desde cómo programar hasta los últimos trucos.
Nadie nace sabiendo, y lo que sabemos es simplemente conocimiento relativo, que solo nos sirve para jactarnos de él y levantarnos minas...
No quiero llegar a tanto y solo lo quiero aplicar a las páginas de un cliente "especial". Además esa solución creo que no se podría aplicar a Netscape. Como es muy complejo se me ocurren dos opciones: vaciar de forma recurrente el portapapeles o llenarlo con un mensaje. ¿Sabes cómo hacerlo?.
No entiendo la pregunta jochimin. ¿Vos quieres que se te vacíe el portapapeles? Porque su estado por default es vacío (empty), lo llenás cuando copias algo y podes (creo que es más barato) copiar espacios.
Repito, no entiendo.
Gracias. Se nota que tienes grandes conocimientos pero a veces lo simple es lo correcto. Al cargar el clipboard con un texto (o con espacios) de forma reitarada evito que copien la imagen. Este sería el caso.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas