Foros del Web » Programación para mayores de 30 ;) » .NET »

desactivar impr pant con c#

Estas en el tema de desactivar impr pant con c# en el foro de .NET en Foros del Web. Hola, estoy intentando bloquear la tecla imprpant para que no puedan hacer capturas, encontré un ejemplo en visual basic e intenté pasarlo a c# pero ...
  #1 (permalink)  
Antiguo 03/06/2009, 03:38
 
Fecha de Ingreso: abril-2009
Mensajes: 63
Antigüedad: 15 años, 7 meses
Puntos: 0
desactivar impr pant con c#

Hola, estoy intentando bloquear la tecla imprpant para que no puedan hacer capturas, encontré un ejemplo en visual basic e intenté pasarlo a c# pero no logro que funcione.

Espero que podais echarme una mano gracias.
  #2 (permalink)  
Antiguo 03/06/2009, 04:53
 
Fecha de Ingreso: abril-2009
Mensajes: 63
Antigüedad: 15 años, 7 meses
Puntos: 0
Respuesta: desactivar impr pant con c#

Este es el código que no consigo pasar a c#:

Código:
Public Declare Function UnhookWindowsHookEx Lib "user32" (ByVal hHook As Integer) As Integer

Public Declare Function SetWindowsHookEx Lib "user32" Alias "SetWindowsHookExA" (ByVal idHook As Integer, ByVal lpfn As KeyboardHookDelegate, ByVal hmod As Integer, ByVal dwThreadId As Integer) As Integer

Private Declare Function GetAsyncKeyState Lib "user32" (ByVal vKey As Integer) As Integer

Private Declare Function CallNextHookEx Lib "user32" (ByVal hHook As Integer, ByVal nCode As Integer, ByVal wParam As Integer, ByVal lParam As KBDLLHOOKSTRUCT) As Integer
He probado con varios convertidores y ninguno consigue convertirlo bien.

Saludos.
  #3 (permalink)  
Antiguo 03/06/2009, 07:33
Avatar de erick_arcini  
Fecha de Ingreso: julio-2005
Ubicación: Jaltenco / DF
Mensajes: 1.723
Antigüedad: 19 años, 4 meses
Puntos: 50
Respuesta: desactivar impr pant con c#

Cita:
Iniciado por KatonSP Ver Mensaje
...
Código:
Public Declare Function UnhookWindowsHookEx Lib "user32" (ByVal hHook As Integer) As Integer

Public Declare Function SetWindowsHookEx Lib "user32" Alias "SetWindowsHookExA" (ByVal idHook As Integer, ByVal lpfn As KeyboardHookDelegate, ByVal hmod As Integer, ByVal dwThreadId As Integer) As Integer

Private Declare Function GetAsyncKeyState Lib "user32" (ByVal vKey As Integer) As Integer

Private Declare Function CallNextHookEx Lib "user32" (ByVal hHook As Integer, ByVal nCode As Integer, ByVal wParam As Integer, ByVal lParam As KBDLLHOOKSTRUCT) As Integer
...
Hola, haber prueba con esto:

Código:
[DllImport("user32")]
static extern int UnhookWindowsHookEx(int hHook);
__________________
Mejoremos nuestro país, ayudemos al planeta... próximamente.
  #4 (permalink)  
Antiguo 03/06/2009, 07:49
 
Fecha de Ingreso: abril-2009
Mensajes: 63
Antigüedad: 15 años, 7 meses
Puntos: 0
Respuesta: desactivar impr pant con c#

Gracias esa parte ya me funciona, ahora le tengo que arreglar miles de errores y ya funcionará xD. Cuando lo termine lo posteo.

Saludos
  #5 (permalink)  
Antiguo 03/06/2009, 08:19
 
Fecha de Ingreso: abril-2009
Mensajes: 63
Antigüedad: 15 años, 7 meses
Puntos: 0
Respuesta: desactivar impr pant con c#

Me falta arreglar este código que ya es el único que me da error:

public void HookKeyboard()
{
callback = new KeyboardHookDelegate(KeyboardCallback);

KeyboardHandle = SetWindowsHookEx(WH_KEYBOARD_LL, callback, Convert.ToInt32(Marshal.GetHINSTANCE(Assembly.GetE xecutingAssembly.GetModules()[0])), 0);

CheckHooked();
}

El error da en el GetExecutingAssembly.

Saludos

Última edición por KatonSP; 03/06/2009 a las 08:34
  #6 (permalink)  
Antiguo 04/06/2009, 02:10
 
Fecha de Ingreso: abril-2009
Mensajes: 63
Antigüedad: 15 años, 7 meses
Puntos: 0
Respuesta: desactivar impr pant con c#

Ya lo solucione, al final lo e echo de una forma más sencilla, lo que hace el código es borrar el portapapeles cada vez que pulsa el botón imprpant.

private void Form1_KeyUp(object sender, KeyEventArgs e)
{
if (e.KeyData == Keys.PrintScreen)
{
Clipboard.Clear();
}
}

Salu2
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 22:24.