#1 16. September 2007 Druck-Taste abfangen Also folgendes Problem, ich will ein Programm schreiben indem die "Druck-Taste" per OnKeyPress Event abgefangen wird. Ich bekomme ja ziemlich viele Tasten per keychar ausgelesen und ausgegeben, allerdings bekomme ich keiner der oberen Tasten dort angesprochen. Hat dort jemand zufällig eine Ahnung wie ich dieses Event abgreifen kann? + Multi-Zitat Zitieren
#2 16. September 2007 AW: Druck-Taste abfangen Code: procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); begin if key = VK_PRINT then begin ShowMessage('LOLOLOLWTF?'); end; end; + Multi-Zitat Zitieren
#3 16. September 2007 AW: Druck-Taste abfangen Jau und genau da passiert GARNICHTS ... ^^° ich kann die Ruck taste drücken wie ich will... da passiert nix Es funktioniert sogut wie bei ALLEN tasten , nur nicht bei der Druck-taste + Multi-Zitat Zitieren
#4 16. September 2007 AW: Druck-Taste abfangen Dann wird aber auch jedesmal ein Screenshot von Windows gemacht xD + Multi-Zitat Zitieren
#5 16. September 2007 AW: Druck-Taste abfangen Jo kann ja , os mir pups , allerdings will ich da eine funktionaliät drauf legen... und da komm ich halt nicht hin wenn ich die Taste nicht "belgen" kann + Multi-Zitat Zitieren
#6 16. September 2007 AW: Druck-Taste abfangen Probiers mal mit VK_SNAPSHOT Code: VK_SNAPSHOT = &H2C + Multi-Zitat Zitieren
#7 16. September 2007 AW: Druck-Taste abfangen hab gerade auch mal geguckt scheint echt nicht so einfach zu gehen vermutte mal das es an der windows screenshot funktion liegt das man die tastertur hooken muss dann sollte es gehen + Multi-Zitat Zitieren
#8 16. September 2007 AW: Druck-Taste abfangen Sollte mit der HotKey-Klasse funktionieren.. Hooks wären zu aufwendig. + Multi-Zitat Zitieren
#9 16. September 2007 AW: Druck-Taste abfangen Moin Beim KeyDown-Event hat Key bei der Druck Taste den Wert 19. Also: Code: procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); begin if key = 19 then {Dein Code}; end; Beim KeyPress-Event bin ich noch nicht drauf gekommen..... Greetz + Multi-Zitat Zitieren
#10 16. September 2007 AW: Druck-Taste abfangen Ich hab es grade mal in VB probiert und da geht es mit VK_PRINT nicht, mit VK_SNAPSHOT aber schon. + Multi-Zitat Zitieren
#11 16. September 2007 AW: Druck-Taste abfangen Ist ja die selbe Schnittstelle.. sollte in Delphi dann auch gehen. + Multi-Zitat Zitieren
#12 16. September 2007 AW: Druck-Taste abfangen geht leider nicht k-ni versuch mal die werte auszulesen egal welche taste du drückst der zeigt dir den wert nur bei der druck taste nicht + Multi-Zitat Zitieren
#13 16. September 2007 AW: Druck-Taste abfangen Beim KeyDown-Event ist es der Wert 19, *ta da* was vk_pause entspricht!!!!!!!! Beim KeyPress-Event enthält Key leider nur die Char... Da die Druck-Taste kein Zeichen darstellt, wüsst ich nicht wie mans verarbeiten sollte..... Aber KeyDown müsste reichen Edit: Ups.....thx@Ktm123 Sry........mit den Tasten durcheinander gekommen ^^ + Multi-Zitat Zitieren
#14 16. September 2007 AW: Druck-Taste abfangen Universelle Lösung die wirklich *jede* Taste abfängt: LowLevel-Kayboard-Hook. Klick! + Multi-Zitat Zitieren
#15 16. September 2007 AW: Druck-Taste abfangen verdammt ich bin Delphi -Anfänger... machts nicht so kompliziert... KeyHook ..... wtf omg ^^°°°° + Multi-Zitat Zitieren
#16 16. September 2007 AW: Druck-Taste abfangen Kann selber kein Delphi, aber hab folgendes bei Google gefunden: Code: function KeyPressed(Key: Integer): Boolean begin Result:=GetKeyState(Key)<0; end; Wenn du jetz diese Funktion mit VK_SNAPSHOT (siehe 1. Seite, mein 1. Post^^) aufrufst, gibt die Funktion TRUE zurück, wenn die Taste gedrückt ist und FALSE, wenn nicht. + Multi-Zitat Zitieren
#17 16. September 2007 AW: Druck-Taste abfangen kann ja sein, dass VK_PAUSE den wert 19 hat, aber 1. geht es hier nicht um die pause-taste und zweitens wird der code im OnKeyDown- ereigniss bei der Druck taste garnicht ausgeführt.... + Multi-Zitat Zitieren
#18 16. September 2007 AW: Druck-Taste abfangen Jup asdrexit hatte von anfang an Recht....... Hotkey funzt...... Code: const ID = $FF; //In den KlassenSachen..... private procedure WMHotKey(var Msg: TMessage); Message WM_HOTKEY; //In der Implementierung procedure TForm1.WMHotKey(Var Msg: TMessage); begin case Msg.WParam of ID: {Dein Code}; end; inherited; end; //Und beim Erstellen des Forms procedure TForm1.FormCreate(Sender: TObject); begin RegisterHotKey(Form1.Handle, ID, 0, vk_snapshot); end; Zur Erklärung: Beim Erstellen des Forms wird eben Hotkey registriert, der auch gilt, wenn dein Form nicht aktiv ist. Wenn der Hotkey gedrückt wird, dann schickt Windoof eine Botschaft(Message) and dein Programm, welche du mit dem Procedure WMHotKey abfängst.... @Gibbon: So hats bei mir nicht gefunzt....... + Multi-Zitat Zitieren