kostenloser Webspace werbefrei: lima-city


Delphi hotkey frage

lima-cityForumProgrammiersprachenDelphi & Pascal

  1. Autor dieses Themas

    crackcheck

    crackcheck hat kostenlosen Webspace.

    hey leute,

    Wie gesgat ich bin neu in delphi und noch ziemlicher noob.

    Meine frage:
    Ich will dass wenn man F7 klick (auch wenn das programm nicht aktiv ist) dass dann eine bestimme prozedur (procedure TForm1.Button1Click(Sender: TObject);)
    ausgeführt wird.
    irgendwie möglich?
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. Autor dieses Themas

    crackcheck

    crackcheck hat kostenlosen Webspace.

    danke fuer die antwort..:P

    also ich hab exact dass gemacht was du gesagt hast (oder nicht?) doch da kommt keine mesagge..

    http://img530.imageshack.us/img530/2717/screenzm1.jpg


    edit: also, ich habs mal an einem neuen projekt versucht und da hat es geklappt.
    Doch das problem jetzt ist. Es sollte auch funktionieren wenn man im Spiel ist.




    Beitrag geändert: 19.7.2007 3:32:20 von crackcheck
  4. burgi

    Co-Admin Kostenloser Webspace von burgi

    burgi hat kostenlosen Webspace.

    Dein "Problem" ist, dass du willst, dass es auch funktioniert, wenn deine Anwendung nicht aktiv ist. Das nennt sich dann Tastatur-Hook.
    Such einfach mal auf bekannten Delphiseiten nach keyboard hook, da werden sie geholfen ...
  5. Autor dieses Themas

    crackcheck

    crackcheck hat kostenlosen Webspace.

    Ok thx.
    Ich hab jetzt mal nach einem tut gesucht und auch was gefunden:
    http://www.dsdt.info/tutorials/hooks/?page=6

    Ich hab die .dll gemacht hab aber noch 3 fragen dazu.
    1. Frage, da wird dauernd von diesem tastatur hook geredet doch nie von welcher taste sie sprechen.
    2. Wie kann ich die dll einbinden? "HookDLL BINRES "Hooks.DLL"" geht nicht.
    3. fuer was soll ich dass machen? "{$R main.res}" ?
  6. burgi

    Co-Admin Kostenloser Webspace von burgi

    burgi hat kostenlosen Webspace.

    0) Also: ich finde diese Lösung "überdimensioniert".

    1)Du hast die DLL wie hier erstellt:
    http://www.dsdt.info/tutorials/hooks/?page=4
    Und jetzt schau hier weiter:
    function KeyboardHookProc(nCode: Integer; wParam: WPARAM; lParam: LPARAM):
     LRESULT; stdcall;
    begin
      Result := CallNextHookEx(HookHandle, nCode, wParam, lParam);
      case nCode < 0 of
        TRUE: exit; //wenn code kleiner 0 wird nix gemacht
                    //if code smaller 0 nothing has to be done
        FALSE:
          begin
    // HIER BEOBACHTEST DU NUN DIE PARAMETER
    // wParam und lParam, mit denen ja diese Funktion von Windows aufgerufen wird.
    // In der Hilfe zum WindowsSDK von Microsoft müßtest du da zusätzliche Infos finden. Je nachdem, welche Taste du drückst, wird ein einem der Paramter (oder im High- oder Low-Byte eines der Paramter) der Tastatur-Scancode (oder Virtual Key Code) übergeben. Daher weißt du, welche Taste gedrückt wurde!!
          end;
      end;
    end;


    2) Das kannst du dir sparen, wenn du die DLL nicht einbinden willst als Resource. D.h. du hast nicht die EXE-Datei und dazu die DLL-Datei, sondern die DLL-Datei wird "an die EXE angehängt". Das Listing auf der von dir geposteten Seite macht erstmal nichts anderes, als dass es die DLL aus der EXE-Datei wieder rauskramt, und als Datei zum Ausführen und Laden in eine Datei schreibt. Den Schritt kannst du dir also beruhigt sparen. (Das verheimlicht mehr oder weniger nur, dass du mit einem Hook arbeitest)

    Die DLL lädst du entweder dynamisch (bevorzuge ich) oder statisch in deinem Programm (EXE), wie es hier beschrieben ist:
    http://www.dsdt.info/tutorials/hooks/?page=5


    3) wie 2)!

    Beitrag geändert: 19.7.2007 13:10:54 von burgi
  7. Wo gibts ne kommplette Tabelle mit den Tastencodes ich hab in der Delphihilfe keine gefunden.
  8. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!