Entwickler-Ecke
Windows API - Systemweit Tastatur abfragen
Big_Boss - Fr 15.12.06 21:49
Titel: Systemweit Tastatur abfragen
Hallo (mein 1.Beitrag),
Ich möchte ein Programm machen, das auf Tastendruck von "s" reagiert.
Ich habe es soweit auch hinbekommen (mit registerhotkey) aber wenn ich mein Programm dann ausführe und im Hintergrund laufen lasse, dann wird "s" nicht mehr an die anderen Programme weitergeleitet, dann passiert blos noch das, was mein Programm machen, sonst nichts.
Wie lasse ich das "Signal" abfangen aber danach noch weiterleiten?
MfG Big_Boss
Big_Boss - Fr 15.12.06 22:07
Ok, ich wollte es eigentlich mit Registerhotkey machen da ich Hooks bisher noch nicht verstanden habe aber jetzt versteh ich es einwenig.
Delphi-Quelltext
1: 2:
| if ((Msg.LParam and $80000000) = 0) and FDummy then Inc(FCount); |
Das reagiert glaube ich auf alles, wie mach ich das speziell auf "s"?
Moderiert von
matze: Code- durch Delphi-Tags ersetzt
Jakob Schöttl - Sa 16.12.06 00:04
Wie du die HotKey-ID von "s" rausbekommst, geht so: du platzierst ein THotkey auf deinem Formular, und gibst dort den gewünschten hotkey ein, dann gibt es eine Eigenschaft, die dir eben die ID sagt.
Delphi-Quelltext
1: 2:
| if ((Msg.LParam = ID) and FDummy then Inc(FCount); |
Aber ich empfehle dir THotkeyManager! Den gibts
hier [
http://www.delphipages.com/result.cfm?ID=1515].
Big_Boss - Sa 16.12.06 10:35
Der Manager ist doch blos eine Unit, kann ich mir da was abschauen oder soll ich sie einbinden???
Und wenn ich einen Thotkey platziert und angepasst habe, wie finde ich dann die ID raus?
MfG Big_Boss
Jakob Schöttl - Sa 16.12.06 13:51
Big_Boss hat folgendes geschrieben: |
| Der Manager ist doch blos eine Unit, kann ich mir da was abschauen oder soll ich sie einbinden??? |
Also: THotkeyManager ist eine Komponente, die du aber erst anhand der Unit selbst installieren musst. Das geht so:
Delphi-Hauptmenü -> Datei -> Neu -> Weitere -> Package -> Hinzufügen -> Unit auswählen... -> Compilieren, Installieren
Die Komponente findest du dann unter der Registerkarte "System" wieder. Nun musst du noch die Unit(s), die du mit THotkeymanager heruntergeladen hast in folgendes Verzeichnis kopieren:
c:\programme\borland\delphi\lib
Das ganze brauchst du nicht speichern.
Big_Boss hat folgendes geschrieben: |
| Und wenn ich einen Thotkey platziert und angepasst habe, wie finde ich dann die ID raus? |
THotKey hat die Eigenschaft Hotkey, und als wert sind lauter Konstanten zur auswahl z. B. Strg+A, ...
Diese Eigenschaft ist aber vom TShortcut.
| delphi-Hilfe hat folgendes geschrieben: |
| type TShortCut = Low(Word) .. High(Word); |
Und diese Eigenschaft kannst du dann dem Hotkeymanager zuweisen, oder eben in deiner selbstgeschriebenen Procedure einbauen.
Hoffentlich hilft dir das weiter, Viele Grüße, Jakob
Big_Boss - Sa 16.12.06 20:33
Jakob Schöttl hat folgendes geschrieben: |
Delphi-Hauptmenü -> Datei -> Neu -> Weitere -> Package -> Hinzufügen -> Unit auswählen... -> Compilieren, Installieren
|
Ich brauch ja wohl nicht zu erwähnen, dass ich ein ziehmlicher Anfänger bin :oops: .
Bis zu Schritt 5 klappt alles, aber dann steht da nirgends Hinzufügen(nur ok), wenn ich ok klicke, wird eine Art neue "Unit"(Package)gemacht. Ich weiß nicht, wo ich dann eine Unit auswählen kann und installiere.
MfG Big_Boss
Big_Boss - Mo 18.12.06 17:39
Ich habe mich mal länger mit hooks befasst und nun ein paar Fragen:
1. Muss ich bei globalen Hooks eine dll machen?
2. Mit diesem code istalliere ich meinen hook:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14:
| function InstallHook(Hwnd: Cardinal): Boolean; stdcall; begin Result := False; if HookHandle = 0 then begin HookHandle := SetWindowsHookEx(WH_KEYBOARD, @KeyboardHookProc, HInstance, 0); WindowHandle := Hwnd; Result := TRUE; end; end; |
Was passiert wenn WindowHandle auf true/false gesetzt wird?
Wie reagiere ich(mein Programm) auf einen Tastendruck?
MfG Big_Boss
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!