Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > API de Windows
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 20-03-2008
luiggixD luiggixD is offline
Miembro
 
Registrado: dic 2006
Ubicación: Lima - Peru
Posts: 32
Poder: 0
luiggixD Va por buen camino
Ayuda para bloquear Alt - Tab WinXP

Buenas compañeros tengo algunos problemas en casa y he decidido realizar una aplicacion que bloquea la pantalla he logrado bloquear no solo la pantalla sino muchas combinaciones de teclas excepto la que menciono como titulo trabajo sobre Windows XP y he encontrado una solucion que funciona solo para Win95/98 que es algo como

Código Delphi [-]
procedure Lock(boo: LongBool)
var
  algo: integer;
begin
  //he visto muchos codigos q lo tienen y otros q no pero xsiakaso lo pongo
  algo:= 0;
  // esta linea va siempre asi q no hay problemas aqui
  SystemParametersInfo(SPI_SCREENSAVERRUNNING, Word(boo), @algo, 0) ;
end;

Necesito una solucion lo mas pronto posible por favor urgencia inmediata
Responder Con Cita
  #2  
Antiguo 20-03-2008
Avatar de cHackAll
[cHackAll] cHackAll is offline
Baneado?
 
Registrado: oct 2006
Posts: 2.159
Poder: 20
cHackAll Va por buen camino
Revisa éste tip de roman.

PD: Lamento no haber sido más veloz en realizartelo la búsqueda pero no me di cuenta que era una "urgencia inmediata"
Responder Con Cita
  #3  
Antiguo 20-03-2008
luiggixD luiggixD is offline
Miembro
 
Registrado: dic 2006
Ubicación: Lima - Peru
Posts: 32
Poder: 0
luiggixD Va por buen camino
Gracias

Gracias esto es lo que necesito creo que vi esta solucion antes pero no la quise probar porque alli dice "El siguiente código lo he probado únicamente en Windows 2000 y no pretende ser a prueba de errores." x eso no me anime mucho a probarlo pero ahora lo hare gracias x la respuesta cHackAll
Responder Con Cita
  #4  
Antiguo 21-03-2008
luiggixD luiggixD is offline
Miembro
 
Registrado: dic 2006
Ubicación: Lima - Peru
Posts: 32
Poder: 0
luiggixD Va por buen camino
Unhappy No funciono...

Bueno me remito de nuevo xq probe la unidad que vi en el enlace q puso cHackAll y probe la funcion q hay alli pero no funciona para nada al menos no funciona en el Windows XP no se si tendran alguna otra solucion x alli. El programa funciona al 90% solo necesito añadirle esta restriccion y quedara terminado si alguien pudiese ayudarme le agradeceria bastante.

Disculpen las molestias
Responder Con Cita
  #5  
Antiguo 24-03-2008
Avatar de cHackAll
[cHackAll] cHackAll is offline
Baneado?
 
Registrado: oct 2006
Posts: 2.159
Poder: 20
cHackAll Va por buen camino
Cita:
Empezado por luiggixD Ver Mensaje
...probe la funcion q hay alli pero no funciona para nada al menos no funciona en el Windows XP no se si tendran alguna otra solucion x alli...
No lo he probado pero si lo he analizado y dicho codigo funciona a la perfección, lo que posiblemente sucede es que no leíste los comentarios;

Cita:
Empezado por roman
Según la documentación, los 'ganchos' de sistema deben implementarse en una DLL pero parece funcionar simplemente incluyendo la unidad hooks.pas en cualquier proyecto.
Al parecer el enlace de descarga de dicha librería esta rota, por lo tanto he hecho otra versión de la misma libreria con solo lo que necesitas;
Código Delphi [-]
library noalttab;
 
uses Windows;
 
var Handle: Cardinal;
 
function HookProc(Code, wParam, lParam: Cardinal): Cardinal; stdcall;
begin
 if (Code = HC_ACTION) and LongBool(PCardinal(lParam + 8)^ and $20{LLKHF_ALTDOWN}) and (PCardinal(lParam)^ = VK_TAB) then
  Result := 1
 else
  Result := CallNextHookEx(Handle, Code, WParam, LParam);
end;
 
begin
 Handle := SetWindowsHookEx(13{WH_KEYBOARD_LL}, @HookProc, HInstance, 0);
end.

Lo pegas en un archivo vacío .DPR y lo compilas... luego con tu aplicación cargas dicha librería con;
Código Delphi [-]
LoadLibrary('noalttab.dll');

PD: para ver como revertir el hook; revisa de nuevo el enlace al código de roman.

Saludos
Responder Con Cita
  #6  
Antiguo 24-03-2008
Avatar de seoane
[seoane] seoane is offline
Miembro Premium
 
Registrado: feb 2004
Ubicación: A Coruña, España
Posts: 3.717
Poder: 24
seoane Va por buen camino
Usando el hook WH_KEYBOARD_LL no hace falta que este implementado dentro de una dll, esa es una de las principales diferencias con WH_KEYBOARD. Por otro lado la unit de roman no suele dar problemas, pero ten en cuenta que es posible que no te funcione en windows 98 ¿donde lo estas probando?
Responder Con Cita
  #7  
Antiguo 25-03-2008
keyboy keyboy is offline
Miembro
 
Registrado: oct 2004
Posts: 367
Poder: 20
keyboy Va por buen camino
Cita:
Empezado por seoane
es posible que no te funcione en windows 98 ¿donde lo estas probando?
Cita:
Empezado por luiggixD Ver Mensaje
no funciona para nada al menos no funciona en el Windows XP
Imagino que lo está probando en XP Yo acabo de probarlo, también en XP, y me ha funcionado tal cual. Eso sí, hay que instalar el gancho con SetHook e indicar la tecla que se quiera inhibir con LockKey.

Bye
Responder Con Cita
  #8  
Antiguo 06-05-2008
benom benom is offline
Registrado
 
Registrado: feb 2008
Posts: 1
Poder: 0
benom Va por buen camino
Unhappy Como instalar el SetHook

Hola un saludos,, muy buen foro....

Ps he seguido al pie de la letra sus comentarios y sugerencias,, pero aun no resulvo el problema...del ALT-TAB.

No entendi esa ultima parte de que hay q instalar el SetHook q menciona(keyboy),,me podrian decir como hacerlo?

de antemano gracias por su atencion.

++++++++++++++++++Listo entendi lo q queria decir keyboy,, soy de lento a prendisaje XD muchas gracias********************************

Última edición por benom fecha: 06-05-2008 a las 21:46:32.
Responder Con Cita
  #9  
Antiguo 07-05-2008
Avatar de cHackAll
[cHackAll] cHackAll is offline
Baneado?
 
Registrado: oct 2006
Posts: 2.159
Poder: 20
cHackAll Va por buen camino
Código Delphi [-]
var hHook: Cardinal;

function HookProc(Code, wParam, lParam: Cardinal): Cardinal; stdcall;
begin
 if (Code = HC_ACTION) and LongBool(PCardinal(lParam + 8)^ and $20{LLKHF_ALTDOWN}) and (PCardinal(lParam)^ = VK_TAB) then
  Result := 1
 else
  Result := CallNextHookEx(hHook, Code, WParam, LParam);
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
 hHook := SetWindowsHookEx(13{WH_KEYBOARD_LL}, @HookProc, HInstance, 0);
end;
Responder Con Cita
  #10  
Antiguo 30-05-2008
director0407031 director0407031 is offline
Registrado
 
Registrado: may 2008
Posts: 7
Poder: 0
director0407031 Va por buen camino
Gracias por su colaboración

deseo expresar mi agradecimiento por su colaboración
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
color de botones para winxp y 98 Patricio Gráficos 7 04-12-2006 21:01:59
bloquear el boton [X] para cerrar una ventana juanmdq HTML, Javascript y otros 3 19-12-2005 23:17:04
como bloquear para borrar en tablas Paradox Mario1980 Varios 4 01-12-2004 15:17:51
Bloquear la Hora WinXP/2000 codigit Windows 16 01-10-2004 06:51:06
Como bloquear la tabla, para escritura? judoboy Conexión con bases de datos 2 21-05-2003 10:02:48


La franja horaria es GMT +2. Ahora son las 06:42:18.


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
Copyright 1996-2007 Club Delphi