Delphi-PRAXiS
Seite 2 von 4     12 34      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi Tastendruck -> Mausklicks (https://www.delphipraxis.net/105080-tastendruck-mausklicks.html)

Die Muhkuh 15. Dez 2007 18:50

Re: Tastendruck -> Mausklicks
 
Na Detlef :zwinker:

Mal wieder zu langsam für die Kuh? :mrgreen:

DeddyH 15. Dez 2007 18:51

Re: Tastendruck -> Mausklicks
 
[OT] Das können aber nur Sekunden gewesen sein :mrgreen: [/OT]

Die Muhkuh 15. Dez 2007 18:51

Re: Tastendruck -> Mausklicks
 
Zitat:

Zitat von DeddyH
[OT] Das können aber nur Sekunden gewesen sein :mrgreen: [/OT]

Aber es hat gereicht. :mrgreen:

DeddyH 15. Dez 2007 18:52

Re: Tastendruck -> Mausklicks
 
:P

Saturos 15. Dez 2007 22:13

Re: Tastendruck -> Mausklicks
 
Hmmm...aber leider nicht zur lösenden Antwort, denn Ord('ö/Ö') habe ich schon dutzende Male versucht. :freak:

patti 15. Dez 2007 22:16

Re: Tastendruck -> Mausklicks
 
Du hast aber schon beachtet, dass in deinem Code-Schnipsel die Shift-Taste (MOD_SHIFT) mit abgefragt wird, oder?

Patti

Saturos 16. Dez 2007 10:39

Re: Tastendruck -> Mausklicks
 
Ja, eigentlich schon. Wobei ich da nur ö genommen hätte, also mit 0 anstelle von MOD_SHIFT etc. .

patti 16. Dez 2007 11:33

Re: Tastendruck -> Mausklicks
 
Du könntest mal z.B. Alt + Ö oder eine Kombination mit einem anderen Buchstaben versuchen und überprüfen, ob das funktioniert. Eigentlich sollte es, solange der HotKey noch nicht anderweitig gesetzt ist, dann klappen. Ich weiß nicht, ob man einen einzelnen Buchstaben ohne MOD_... als Hotkey definieren kann, oder ob Windows das verbietet.

Patti

Saturos 16. Dez 2007 12:10

Re: Tastendruck -> Mausklicks
 
Also in der CodeLibrary stand, dass man auch eine einzelne Taste definieren kann. Diese letzte vereinbarte Taste muss laut Delphi vom Typ cardinal sein. Das dürften aber doch dann nur "Sondertasten", wie Pfeil auf oder - ab sein oder irre ich mich da?
Beim Testen habe ich herausgefunden, dass das Klicken außerhalb des Forms auch funktioniert, mein Problem ist nur den Timer wieder zu disabeln. Bis jetzt sieht das folgendermaßen aus:
Delphi-Quellcode:
var
  ...
  curs:tpoint;
  klick:boolean;

procedure TForm1.Timer1Timer(Sender: TObject);
var i:integer;
begin
 for i:=1 to 2 do begin
  mouse_event(MOUSEEVENTF_LEFTDOWN, Curs.x, Curs.y, 0, 0);
  mouse_event(MOUSEEVENTF_LEFTUP, Curs.x, Curs.y, 0, 0)
 end;
end;

procedure TForm1.WMHotKey(var Message:TMessage);
begin
   If Message.wParam=HotKeyID then begin
    if not klick then begin
     klick:= true;
     GetCursorPos(curs);
     if anaus=true then
      timer1.Enabled:=true
    else if klick then
     timer1.Enabled:=false;
    end;
   end;
end;
Die Variable klick ist am Anfang false und wird bei Aktivierung des Timers auf true gesetzt. Das würde also bedeuten, dass beim nächsten Mal, wenn der Hotkey gedrückt wird die zweite Bedingung erfüllt ist und der timer wieder gestoppt wird. Problem: beim erneuten Drücken des Hotkeys, wird der Timer trotzdem nicht gestoppt :wiejetzt: .

DeddyH 16. Dez 2007 12:13

Re: Tastendruck -> Mausklicks
 
Zitat:

Zitat von Saturos
Delphi-Quellcode:
    if not klick then begin
     klick:= true;
     GetCursorPos(curs);
     if anaus=true then
      timer1.Enabled:=true
    else if klick then
     timer1.Enabled:=false;
    end;

Wenn klick true ist, kommst Du gar nicht in den Block.


Alle Zeitangaben in WEZ +1. Es ist jetzt 08:36 Uhr.
Seite 2 von 4     12 34      

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