Avatar billede xsms Nybegynder
22. oktober 1999 - 21:27 Der er 14 kommentarer

Keylog

1:Kan det lade sig gøre at lave et program som optager hvert taste klik?
Som kan gentage det der er gemt nærmest li som makro bare tekst baserede.

2:Jeg vil godt betale for det nr.1!

3:Hvis nr.3 ikke er muligt
så er det ok med det øverste men det vil jeg ikke betaale for!!
Avatar billede snorga Nybegynder
23. oktober 1999 - 00:20 #1
Det kan godt lade sig gøre.. Venter lige tilbage med kode HVIS jeg kan få det til at virker..

MEN Hvad er det lige du vil "betale"  point for..
1: er optage og afspille taste tryk..

2: Vil godt betale for 1. (som er hele spørgsmålet)

3: Hvis HVAD i nr 3 ikke er muligt? Jeg er lidt forviret.
Avatar billede xsms Nybegynder
23. oktober 1999 - 12:09 #2
Du har ret jeg kan hellere ikkke selv finde rundt i det!
Jeg vil godt have fat i nogen koder til et et program som optager hvert taste klik.Og som kan gentage det der er gemt nærmest li som makro bare tekst baserede.
ps. Glem det der med pengene
Avatar billede snorga Nybegynder
23. oktober 1999 - 20:54 #3
Hvem snakker om penge? Mener du ikke point..?

Jeg har noget kode måske modificers til at gøre det du vil ha.. Jeg har bare ikke tid til at så det til at virke :(

Det har det med at lægge mit windows ned.. Koden skal vist over i en DLL for at virke med at kunne capture alle key-tasts.. Når du så skal "afspille" key tastne kan du bruge SendMessage() til sende keymessagene igen.
----------

unit MainUnit;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  StdCtrls;

type
  TForm1 = class(TForm)
    groupHook: TGroupBox;
    ListBox_hook: TListBox;
    Button1: TButton;
    Edit1: TEdit;
    procedure FormCreate(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;
  TKMsg=class
    wParam: WPARAM;
    lParam: LPARAM;
    Constructor Create(wParam_: WPARAM; lParam_: LPARAM);
  end;

var
  Form1: TForm1;
  Hooken: HHook;
  Log:TList;
  n:Cardinal;

function KeyboardHook(nCode: Integer; wParam: WPARAM; lParam: LPARAM): LResult;

implementation

Uses MessageToStr;

{$R *.DFM}
Constructor TKMsg.Create(wParam_: WPARAM; lParam_: LPARAM);
begin
  wParam:=wParam_;
  lParam:=lParam_;
end;

function KeyboardHook(nCode: Integer; wParam: WPARAM; lParam: LPARAM): LResult;
begin
  {if we can process the hook information...}
  if (nCode>-1) then begin
    Log.Add( TKMsg.Create(wparam,lparam) );
    inc(n);
    Result := 0; //1?
  end else
    {we must pass the hook information to the next hook in the chain}
    Result := CallNextHookEx(Hooken, nCode, wParam, lParam);
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  Hooken:=SetWindowsHookEx(WH_GETMESSAGE, @KeyboardHook, 0, GetCurrentThreadID);
  Log := TList.Create;
  n:=0;
end;

procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  UnhookWindowsHookEx(Hooken);
  Log.Free;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  Caption:=IntToStr(n);exit;
  while log.Count>0 do begin
    Listbox_hook.items.add(Format('w=%d, l=%d',[TKMsg(Log[0]).wParam,TKMsg(Log[0]).lParam]));
    TKMsg(Log[0]).Free;
    Log.Delete(0);
  end;
end;

end.
Avatar billede xsms Nybegynder
23. oktober 1999 - 22:29 #4
Det har du ret i det der program får delphi til at gå ned. Jeg er sådan nybegynder i delphi sår hvad mener du helt precist med at SendMessage() og hvordan får man det ned i en dll?
ps.jeg får en om at button 1 ikke eksitere!
Avatar billede snorga Nybegynder
25. oktober 1999 - 08:58 #5
Jeg sider midt i en hovedopgave og har derfor ikke ret meget tid til overs for tiden :(

SendMessage er en procedure til at sende en tmessage til et andet program, eller til alle programmer. En message kan være at musen har flyttes sig, det kan være en tastetryk det kan være besked om at gentegne formen, og 117 forskellige andre ting..

med hensyn til button1 ikke eksitere: Prøv at kikke under
  TForm1=Class(TForm)
    her beskrives de ting som er på formen.
   
--
Jeg har desvære ikke tid til at hjælpe med dette fortiden.
Avatar billede dj Nybegynder
28. oktober 1999 - 14:49 #6
Jeg har en DLL + sourcekode til at fange tastetryk, for 150 point vil jeg da gerne sende den til dig :)

Bare stik mig en mailadresse!

PS. Du kan bare vente med at acceptere svaret til du har fået koden og kigget på det ..
Avatar billede snorga Nybegynder
28. oktober 1999 - 15:42 #7
>>dj, Virker den under NT?
Avatar billede dj Nybegynder
28. oktober 1999 - 16:21 #8
>>snorga, jeg har ikke prøvet den selv så jeg skal ikke kunne sige det, det var bare en jeg fik af en fyr over IRC, men så fik jeg ikke noget at bruge den til alligevel og så har jeg bare haft den liggende :)

men jeg kan da sende den til dig, så kan du selv prøve (jeg kører ikke NT)
Avatar billede snorga Nybegynder
28. oktober 1999 - 16:23 #9
Det er ikke mig der skal bruge det til NT, men Xsms.. (Jeg køre heller ikke NT)
Avatar billede xsms Nybegynder
28. oktober 1999 - 19:43 #10
Okay send den til Adan@forum.dk
Avatar billede dj Nybegynder
20. november 1999 - 15:38 #11
oups, du må meget undskylde at jeg havde glemt dig spørgsmål! Jeg fik fornulig en mail angående dette spørgsmål og så kom jeg i tanke om at jeg da egentlig aldrig fik sendt den til dig...

Det vil jeg så råde bod på nu, hvis ikke du da har fundet en anden løsning i mellemtiden!

men når du ser hvad der ellers følger med kan det være at du synes at kildekoden er pointene værd alligevel :)
Avatar billede lrj Nybegynder
27. februar 2000 - 14:49 #12
Lukke spørgsmålet?
Avatar billede snorga Nybegynder
27. februar 2000 - 20:04 #13
lrj>> er du ved at rydde op i gamle spørgsmål?
Avatar billede lrj Nybegynder
27. februar 2000 - 20:53 #14
Jup, jeg trawler gamle højpoint-spm :)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester