AGB  ·  Datenschutz  ·  Impressum  







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

Tastatur Hook

Ein Thema von 1234567890987654321 · begonnen am 22. Jul 2010 · letzter Beitrag vom 27. Jul 2010
Antwort Antwort
Seite 2 von 2     12   
1234567890987654321

Registriert seit: 8. Jun 2010
73 Beiträge
 
#11

AW: Tastatur Hook

  Alt 22. Jul 2010, 21:15
Wieder dass Problem mit den @
ACHTUNG: ICH VERWENDE LAZARUS
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#12

AW: Tastatur Hook

  Alt 22. Jul 2010, 21:24
Dir ist bekannt, dass du Beiträge auch editieren kannst oder?
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.625 Beiträge
 
Delphi 12 Athens
 
#13

AW: Tastatur Hook

  Alt 23. Jul 2010, 08:11
Funktioniert es so?
Delphi-Quellcode:
type
  TKeyboardProc = function(nCode, wParam, lParam: LongInt): LongInt;
var Proc: TKeyboardProc;
begin
  ...
  Proc := KeyboardProc;
  hHook := SetWindowsHookEx(WH_KEYBOARD, Proc, hInstance, 0);
Die Parameter der Funktion müssten dann alle vom Typ LongInt sein, aber da Lazarus das ja anscheinend unbedingt so haben will...
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von erich.wanker
erich.wanker

Registriert seit: 31. Jan 2008
Ort: im schönen Salzburger Land
461 Beiträge
 
Delphi XE4 Professional
 
#14

AW: Tastatur Hook

  Alt 23. Jul 2010, 11:53
Ein "Lazarus"-Quelltext für Tastaturhook als DLL

HTH Erich

Delphi-Quellcode:
{$mode objfpc}{$H+}

{$IFDEF WINDOWS}{$R Programmname32.rc}{$ENDIF}

uses
 Classes,
 Windows,
 ActiveX,
 ShlObj,
 Messages,
 SysUtils;



var
  HookHandle: Cardinal = 0;
  AppHandle: HWND;






function KeyboardHookProc(nCode: Integer; wParam: WPARAM; lParam: LPARAM): LRESULT; stdcall;
begin
  Result := CallNextHookEx(HookHandle,
                           nCode,
                           wParam,
                           lParam);
  if nCode = HC_NOREMOVE then Exit;


    if ((lParam and (1 shl 30)) <> 0) then
    begin
        if wParam = VK_F4 then
        begin
            PostMessage(FindWindow(nil,'Fenstername von deinem Programm'), WM_USER + 8760, 300, 0);
        end
        else
        begin
            PostMessage(FindWindow(nil,'Fenstername von deinem Programm'), WM_USER + 8760,wParam,lParam);
        end;
    end;

end;

function StartHook32(ApplicationHandle: HWND): Boolean; stdcall;
begin
  Result := False;
  if HookHandle = 0 then
    begin
    HookHandle := SetWindowsHookEx(WH_KEYBOARD,
                                   @KeyboardHookProc,
                                   HInstance,
                                   0);
    AppHandle := ApplicationHandle;
    Result := TRUE;
    end;


end;

function StopHook32: Boolean; stdcall;
begin
  Result := UnhookWindowsHookEx(HookHandle);
  HookHandle := 0;
end;

exports
  StartHook32,
  StopHook32;
end.
Erich Wanker - for life:=1971 to lebensende do begin ..
  Mit Zitat antworten Zitat
1234567890987654321

Registriert seit: 8. Jun 2010
73 Beiträge
 
#15

AW: Tastatur Hook

  Alt 23. Jul 2010, 16:02
Funktioniert es so?
Delphi-Quellcode:
type
  TKeyboardProc = function(nCode, wParam, lParam: LongInt): LongInt;
var Proc: TKeyboardProc;
begin
  ...
  Proc := KeyboardProc;
  hHook := SetWindowsHookEx(WH_KEYBOARD, Proc, hInstance, 0);
Die Parameter der Funktion müssten dann alle vom Typ LongInt sein, aber da Lazarus das ja anscheinend unbedingt so haben will...
Nein leider nicht, und die Dll hab ich ja schon, aber trotzdem danke
und, der Fehler mit den @ taucht nur auf, wenn ich die unit Windows einbinde
ACHTUNG: ICH VERWENDE LAZARUS
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#16

AW: Tastatur Hook

  Alt 23. Jul 2010, 17:00
wenn ich die unit Windows einbinde
Unter was kann man denn eine DLL, die für Windows geschrieben ist noch einbinden?
Michael
Ein Teil meines Codes würde euch verunsichern.

Geändert von Luckie (23. Jul 2010 um 17:23 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.625 Beiträge
 
Delphi 12 Athens
 
#17

AW: Tastatur Hook

  Alt 23. Jul 2010, 17:22
Das hab ich nie gesagt
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
1234567890987654321

Registriert seit: 8. Jun 2010
73 Beiträge
 
#18

AW: Tastatur Hook

  Alt 26. Jul 2010, 19:46
24 std. vorbei():

PUSH, push, Push
ACHTUNG: ICH VERWENDE LAZARUS
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#19

AW: Tastatur Hook

  Alt 27. Jul 2010, 16:35
Wie wär es denn mit
longint(@irgendwas) Gruß
K-H
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector

Geändert von mkinzler (27. Jul 2010 um 16:41 Uhr) Grund: Code-Tag durch Delphi-Tag ersetzt
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


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 16: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