AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi Tastatur-Hook mit Hilfe Assarbads Tut
Thema durchsuchen
Ansicht
Themen-Optionen

Tastatur-Hook mit Hilfe Assarbads Tut

Ein Thema von Dichter · begonnen am 23. Apr 2003 · letzter Beitrag vom 28. Apr 2003
Antwort Antwort
Dichter

Registriert seit: 23. Apr 2003
5 Beiträge
 
Delphi 6 Personal
 
#1

Tastatur-Hook mit Hilfe Assarbads Tut

  Alt 23. Apr 2003, 22:03
Hi alle!
ist mein erster beitrag hier und es ist auch ziemlich ne newbie frage von mir, hoffe ihr schlachtet mich nicht gleich
hab mich die letzten drei oder vier tage mit hooks, tastaturhooks und so beschäftig. ich wollte hier bissel mit nem tastaturhook rumspielen, zu übungszwecken.
ich hab die dll und das proggi so aufgebaut (naja copy&paste ) wie in diesem tut von assarbad http://www.assarbad.org/stuff/tutori...oks/index.html
und hab der einfachheit halber die statische einbindung der hook.dll verwendet. nun zieh ich zwei buttons auf die form meines hauptproggie: mit dem einen will ich ja installhook; aufrufen, nur da liefert er mir nen fehler (nicht genügend wirkliche parameter) also variable muss her. wenn ich ne canvas variable, der keinen wert zugeteilt ist benutze lässt sich das prog schonma starten, gibt aber dann natürlich nen error beim draufklicken . also zb installhook(var1);
jo also meine erste frage wie rufe ich diese prozedur auf?
dann gleich das nächste problem wo arbeite ich mit dem hook? sagen wir ich will die tastaturanschläge in einem memo ausgeben lassen. wo mach ich das? wie komm ich an die gerade gedrückte taste?
haja das wären mal die fragen die mein wirken im keim erstickt haben hoffe ihr könnt mir helfen.
bis dann
Dichter
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#2
  Alt 23. Apr 2003, 22:59
Mail an den Autor. Oder kuck dir mal meinen LuckieSpy an, ist auch nach dem Tutorial gebaut.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Dichter

Registriert seit: 23. Apr 2003
5 Beiträge
 
Delphi 6 Personal
 
#3
  Alt 23. Apr 2003, 23:25
jap hat ich auch schon *g*
aber leider ist das mit non-vcl alles so verwirrend im quelltext
obwohl ich glaub die letzten zwei tage so viel non-vcl quelltext gelesen hab dass ichs gar nicht mehr von anderm unterscheiden kann ^^ oder sogar dass ichs am ende noch ohne zu verstehen selber kann
jo
bis denne
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#4
  Alt 24. Apr 2003, 00:43
Na ja das installieren des Hooks, hat ja nichts mit nonVCL zu tun.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Dichter

Registriert seit: 23. Apr 2003
5 Beiträge
 
Delphi 6 Personal
 
#5
  Alt 24. Apr 2003, 11:37
jo aber des drum herum is so verwirrend...
du hast ja bei dienem proggi zum installen
Code:
 if InstallHook(hDlg) = TRUE then
          begin
            lstrcpy(szBuffer, 'LuckieSpy - on');
            SetWindowText(hDlg, szBuffer);
            SendMessage(hDlg, WM_SYSCOMMAND, SC_MINIMIZE, 0);
            SetDlgItemText(hDlg, IDC_INST, 'o&ff');
            { ID's vertauschen ;)) }
            SetWindowLong(GetDlgItem(hDlg, IDC_INST), GWL_ID, IDC_UNINST);
            IsMinimized := TRUE;
          end;
oder? ich glaub des is doch die install stelle?
meine frage woher kommt dieses hdlg? was mach ich damit?

aber dass is ja nur ne abfrage das kann ja nicht der aufruf der hokkinstall funktion sein
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#6
  Alt 24. Apr 2003, 11:50
hDlg ist nur mein Fensterhandle. Der kleine Trick der dich da wohl verwirrt ist die Tasache, dass ich ein und den selben Button zum installieren und deinstallieren benutze. Damit ich es dann einfacher habe, vertausche ich dessen ID. Aber um das zu erkläre, müßte man etwas tiefer in die nonVCL-Programmierung einsteigen.

if InstallHook(hDlg) = TRUE then Das ist die entscheidende Zeile.

Bei dir müßte die ungefähr so aussehen:
if InstallHook(Form1.Handle) = TRUE then
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Dichter

Registriert seit: 23. Apr 2003
5 Beiträge
 
Delphi 6 Personal
 
#7
  Alt 24. Apr 2003, 13:34
oki jetzt läufts einigermassen...
nur wenn ich jetzt das memo1 auf der form1 ansprechen will, also ein char oder halt wie bei dir im prog (was allerdings auskommentiert ist) :
Code:
 function KeyboardHookProc(nCode: Integer; wParam: WPARAM; lParam: LPARAM): LRESULT;
  stdcall;
var
  letter: Cardinal;
1begin
  case nCode < 0 of
    FALSE:
      if (lParam and $80000000) > 0 then
      begin
->     //letter := MapVirtualKey(wParam,3); <-
        //write2textfile(chr(letter));
        case wParam of
            $20, $30..$39, $41..$5A: write2textfile(chr(wParam));
          else
            if wParam <> $A then
            write2textfile(frmt(' #$%2.2X ', [pointer(wParam)]));
        end;
      end;
  end;
  Result := CallNextHookEx(KBHookHandle, nCode, wParam, lParam);
end;
ich könnt ja 'letter' an die form weitergeben und das dort mit mapvirtualkey() und chr() "auswerten" lassen, aber wie gebe ich nun diese variable an das prog weiter?
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#8
  Alt 24. Apr 2003, 13:57
Daran bin ich bisher auch gescheitert. Desweitern ist es mir noch nicht gelungen, alle Zeichen richtig darzustellen.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Dichter

Registriert seit: 23. Apr 2003
5 Beiträge
 
Delphi 6 Personal
 
#9
  Alt 28. Apr 2003, 17:45
dann danke schön
bis denne
Dichter
  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 21:31 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