AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Tastendrücke protokollieren

Ein Thema von p3ps1 · begonnen am 18. Feb 2004 · letzter Beitrag vom 18. Feb 2004
Antwort Antwort
p3ps1

Registriert seit: 16. Dez 2003
Ort: Recklinghausen
87 Beiträge
 
Delphi 6 Enterprise
 
#1

Tastendrücke protokollieren

  Alt 18. Feb 2004, 14:10
Wie erreiche ich es, dass ich an Tasten komme die gedrückt werden? OnFormKeyDown zeichnet ja soweit ich weiss nur tasten auf, die direkt auf dem formular passieren, also durch edits ect.
Es geht schief was nur schiefgehen kann
  Mit Zitat antworten Zitat
Benutzerbild von Matze
Matze
(Co-Admin)

Registriert seit: 7. Jul 2003
Ort: Schwabenländle
14.929 Beiträge
 
Turbo Delphi für Win32
 
#2

Re: Tastendrücke protokollieren

  Alt 18. Feb 2004, 14:13
Aber stell bitte kienen Unfug damit an (Spioniere keine Passwörter oder so aus )

http://www.delphipraxis.com/topic854...ight=keylogger



Nachtrag: Das Prog ist gar nicht mehr auf Luckies Webseit, sry.
Nachtrag2: www.luckie-online.de/downloads/LuckieSpy2.zip
  Mit Zitat antworten Zitat
czapie

Registriert seit: 17. Nov 2002
Ort: Berlin
384 Beiträge
 
Delphi 5 Standard
 
#3

Re: Tastendrücke protokollieren

  Alt 18. Feb 2004, 14:15
Was du brauchst sind so genannte Hooks.

Gibt es eine Menge sowohl hier im Forum, als im ganzen Web.
Ich empfehle die Asserbads Tutorial.

Czapie.
Was man zu verstehen gelernt hat, fürchtet man nicht mehr.
(Marie Curie)
http://www.cafes-in-berlin.com
  Mit Zitat antworten Zitat
Benutzerbild von Matze
Matze
(Co-Admin)

Registriert seit: 7. Jul 2003
Ort: Schwabenländle
14.929 Beiträge
 
Turbo Delphi für Win32
 
#4

Re: Tastendrücke protokollieren

  Alt 18. Feb 2004, 14:16
Zitat von czapie:
Ich empfehle die Asserbads Tutorial.
Wenn, dann schon Assarbad
  Mit Zitat antworten Zitat
p3ps1

Registriert seit: 16. Dez 2003
Ort: Recklinghausen
87 Beiträge
 
Delphi 6 Enterprise
 
#5

Re: Tastendrücke protokollieren

  Alt 18. Feb 2004, 20:48
mmh... gut!

Jetze finde ich das Tutorial aber etwas dünn.
---> Sprich ich bin daraus nicht wirklich schlau geworden, weil ich finde,
dass zu wenige Dinge erklärt werden.

Und das viel verlinkte Programm von Luckie ist auch nicht hilfreich, da es sehr unübersichtlich ist, und man oft kaum erkennt, ob eine Zeile jetzt Teil des Programms ist, oder dem Erstellen der Form dient. Was ich brauche, bzw. was mich interessiert sind die reinen Proceduren/Funktionen mit denen ich an dei Tastendrücke kommen kann.

Z.B:
Delphi-Quellcode:
liste:TListe;

               liste.insert(getgedruecktetaste);
Es geht schief was nur schiefgehen kann
  Mit Zitat antworten Zitat
Benutzerbild von Matze
Matze
(Co-Admin)

Registriert seit: 7. Jul 2003
Ort: Schwabenländle
14.929 Beiträge
 
Turbo Delphi für Win32
 
#6

Re: Tastendrücke protokollieren

  Alt 18. Feb 2004, 20:53
Also, Luckies Programm mit Ayas Unit finde ich recht schön aufgebaut.

Ich hänge sie mal nicht an, ich hoffe, so ist das okay.
Er ist so lang, weil die Lizenz auch dabei ist, muss ich aus rechtlichen Gründen ja amchen.
Hier die Hook-Unit:

Delphi-Quellcode:
{///////////////////////////////////////////////////////////////////////////////
//    //                              \\    //
//  //            This code is written by: AyaKoshigaya                \\  //
//  //          =============================================              \\  //
// //               Koshigaya Studios 2000 - 2003           \\ //
////              [url]http://www.Koshigaya.de[/url]  [email]Aya@Koshigaya.de[/email]          \\//
///                                       \//
////////////////////////////////////////////////////////////////////////////////

                              -== LIZENZ ==-

                DIESES PROGRMM / DIESER QUELLCODE IST KOSTENLOS.

1. Lizenz
Diese Software wird "So wie sie ist" zur verfügung gestellt, ohne gewährleistung
irgendeiner Art. Sie haben das Recht sie weiter zu verteilen oder den Quellcode zu
modifizieren.

Diese Software darf nur für nicht kommerzielle Wwecke eingesetzt werden.

2. Haftung
In keinem Fall kann der Autor haftbar gemacht werden für irgendwelche Schäden,
gleich welcher art.

3. Copyright
Die Software wird sowohl durch Urheberrechtsgesetze und internationale
Urheberrechtsverträge geschützt, als auch durch andere Gesetze und Vereinbarungen
über geistiges Eigentum.

4. Weitergabe
Die Software darf und soll in der hier angebotenen Form weitergegeben werden.
Alle Rechte verbleiben aber beim Autor.

5. Modifizierung des Quellcodes
Der Quellcode darf verändert / modifiziert werden unter folgenden Bedingungen:
1.) Modifizierter Quellcode ist zu kennzeichen.
2.) Der Copyrightvermerk aus dem Dateikopf muß erhalten bleiben.
3.) Der Ursprung des original Quellcodes darf nicht verfälscht werden.

6. Wirksamkeit
Sollte eine der Bestimmungen dieser Lizenzbestimmungen unwirksam sein, so wird
davon die Wirksamkeit der übrigen Bestimmungen nicht berührt.

////////////////////////////////////////////////////////////////////////////////
****************** Declarations you need in your Program ***********************

const
  WM_KEYBOARD_HOOK = WM_USER + 52012;

function CreateHook(hWnd: HWND; ShiftKeys: Boolean): Boolean; stdcall; external 'KoshigayaKeyboardHook.dll';
function DeleteHook: Boolean; stdcall; external 'KoshigayaKeyboardHook.dll';

********************************************************************************}


library KBHook;

uses
  Windows,
  Messages;

type
  PHWND = ^HWND;

const
  WM_KEYBOARD_HOOK = WM_USER + 52012;

var
  hHook: LongWord = 0;
  Key: Word;
  KeyboardLayout: HKL;
  GetShiftKeys: Boolean;
  hWndBuffer: PHWND;
  hMMF: THandle;

function KeyboardProc(nCode: Integer; wParam: LongWord; lParam: LongWord): LongWord; stdcall;
var
  LastKey: Char;
  KeyState: TKeyboardState;
begin
  Result:=CallNextHookEx(hHook,nCode,wParam,lParam);
  if nCode<0 then
    Exit
  else begin
    KeyboardLayout:=GetKeyboardLayout(0);
    GetKeyboardState(KeyState);
    if ToAsciiEx(wParam,MapVirtualKeyEx(wParam,2,KeyboardLayout),KeyState,@LastKey,0,KeyboardLayout)>0 then
      Key:=Ord(LastKey)
    else
      Key:=wParam;
    if (lParam and $80000000)=0 then
      if not (wParam in [16,17,18]) or GetShiftKeys then
        PostMessage(hwndBuffer^,WM_KEYBOARD_HOOK,Key,GetActiveWindow);
  end;
end;

function CreateHook(hWnd: HWND; ShiftKeys: Boolean): Boolean; stdcall;
var
  bHWND: PHWND;
begin
  hMMF:=CreateFileMapping($FFFFFFFF,nil,PAGE_READWRITE or SEC_COMMIT,0,SizeOf(hWnd),'KoshigayaKeyboardHookHandle');
  bHWND:=MapViewOfFile(hMMF,FILE_MAP_WRITE,0,0,SizeOf(HWND));
  bHWND^:=hWnd;
  UnmapViewOfFile(bHWND);
  GetMem(hWndBuffer,SizeOf(HWND));
  hWndBuffer^:=hWnd;
  GetShiftKeys:=ShiftKeys;
  if hHook=0 then
    hHook:=SetWindowsHookEx(WH_KEYBOARD,@KeyboardProc,hInstance,0);
  Result:=hHook<>0;
end;

function DeleteHook: Boolean; stdcall;
begin
  FreeMem(hWndBuffer);
  CloseHandle(hMMF);
  Result:=UnhookWindowsHookEx(hHook);
  hHook:=0;
end;

exports
  CreateHook,
  DeleteHook;

var
  MMF: THandle;

begin
  MMF:=OpenFileMapping(FILE_MAP_READ,false,'KoshigayaKeyboardHookHandle');
  if MMF<>0 then begin
    hWndBuffer:=MapViewOfFile(MMF,FILE_MAP_READ,0,0,SizeOf(HWND));
    CloseHandle(MMF);
  end;
end.
  Mit Zitat antworten Zitat
Benutzerbild von Stanlay Hanks
Stanlay Hanks

Registriert seit: 1. Mär 2003
2.078 Beiträge
 
Delphi 2005 Professional
 
#7

Re: Tastendrücke protokollieren

  Alt 18. Feb 2004, 20:54
Zitat:
was mich interessiert sind die reinen Proceduren/Funktionen mit denen ich an dei Tastendrücke kommen kann.
Hi. Entweder ganz oder gar nicht. Du musst dich glaub ich schon ein bisschen mit dem Thema beschäftigen.

Du hast geschrieben, dass dir in dem Tutorial zu wenig erklährt wird. Du kannst glaube ich gerne hier die Sachen fragen, die du nicht verstehst, irgendwer kann dir das bestimmt genauer erklähren. Dafür gibts das Forum ja

Man liest sich, Stanlay
  Mit Zitat antworten Zitat
p3ps1

Registriert seit: 16. Dez 2003
Ort: Recklinghausen
87 Beiträge
 
Delphi 6 Enterprise
 
#8

Re: Tastendrücke protokollieren

  Alt 18. Feb 2004, 21:12
Zitat:
Hi. Entweder ganz oder gar nicht. Du musst dich glaub ich schon ein bisschen mit dem Thema beschäftigen.
Ich will mich schon ganz damit beschäftigen. Was mich nur etwas irritiert hat waren eben die ganzen Befehle bezüglich der Form und der eigenen Fonts.

Es geht schief was nur schiefgehen kann
  Mit Zitat antworten Zitat
czapie

Registriert seit: 17. Nov 2002
Ort: Berlin
384 Beiträge
 
Delphi 5 Standard
 
#9

Re: Tastendrücke protokollieren

  Alt 18. Feb 2004, 21:55
Du mußt dich ja nicht so streng daran halten.
Prinzipiell empfehle ich dir ein bißchen Arbeit mit der Windows-API
und speziell mit Handles.

Czapie.

P.S.: Sorry, kann ja nicht jeden User-Namen auswendig kennen
Was man zu verstehen gelernt hat, fürchtet man nicht mehr.
(Marie Curie)
http://www.cafes-in-berlin.com
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:06 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz