Laden...

Tastensequenz "CTRL halten, 1 drücken/loslassen, 2 drücken/loslassen, CTRL loslassen" erkennen

Erstellt von padde77 vor 10 Jahren Letzter Beitrag vor 9 Jahren 1.385 Views
Thema geschlossen
P
padde77 Themenstarter:in
50 Beiträge seit 2011
vor 10 Jahren
Tastensequenz "CTRL halten, 1 drücken/loslassen, 2 drücken/loslassen, CTRL loslassen" erkennen

Hi,

ich benötigen einen Shortcut, welcher auf z.B. Strg+12 reagieren soll.
Wie kann ich die 12 abfangen, denn C# nimmt ja nur e.Control && e.KeyCode == Keys.D1

Danke schön
padde

4.942 Beiträge seit 2008
vor 10 Jahren

Hallo,

meinst du das gleichzeitige Drücken der Tasten '1' und '2' oder nacheinander, also Ctrl+1 und dann Ctrl+2?

P
padde77 Themenstarter:in
50 Beiträge seit 2011
vor 10 Jahren

Hi,

ich meinte
CTRL halten
1 drücken, loslassen
2 drücken, loslassen
CTRL loslassen
Dann hätte ich gerne die 12 gesendet.

Danke
padde

2.223 Beiträge seit 2005
vor 10 Jahren

Hallo padde77,

für dieses Vorgehen könntest Du ein DateTime Field missbrauchen, sobald der Benutzer STRG +1 Drückt setzt du das Field auf DateTime.Now und sobald die 2 gedrückt wird prüfst Du die Zeit die seit dem vergangen ist und wenn das alles in einem von Dir definierten Intervall liegt führst Du deine Aktion aus.

Viele Grüße
Lars

C
2.122 Beiträge seit 2010
vor 10 Jahren

denn C# nimmt ja nur e.Control && e.KeyCode == Keys.D1

Nicht nur. Es nimmt auch Dinge wie Keys.D2, womit du die 2 abfangen kannst 😃
Nachdem es verschiedene Tasten sind, gibts auch verschiedene Events dafür. Du müsstest also wie bereits genannt selber herausfinden ob 1 und 2 in passendem Abstand hintereinander gedrückt wurden.
Und am besten auch ob dazwischen was anderes gedrückt wurde.

D
216 Beiträge seit 2009
vor 10 Jahren
49.485 Beiträge seit 2005
vor 9 Jahren

Hallo zusammen,

es kommt wohl nicht nur auf die zwischen den Tastendrücken verstrichene Zeit an, sondern anscheinend auch oder vielleicht sogar nur, ob die CTRL-Taste die ganze Zeit gedrückt war. Das kann man herausfinden, indem man in KeyDown und KeyUp auch Drücken und Loslassen der Ctrl-Taste für sich alleine abfragt und "mitrechnet".

Ohne das könnte man nicht unterscheiden, welche der beiden Sequenzen benutzt wurde:

CTRL halten
1 drücken, loslassen
2 drücken, loslassen
CTRL loslassen

oder

CTRL halten
1 drücken, loslassen
CTRL loslassen
CTRL halten
2 drücken, loslassen
CTRL loslassen

Aber es bleibt natürlich dabei, dass das Drücken der Tasten 1 und 2 zwei verschiedene KeyDown-Events produziert, was man in jedem Fall berücksichtigen muss.

Insgesamt fällt das Ermitteln von Tastendrücken und auch -sequenzen unter [Hinweis] Wie poste ich richtig? Punkt 1.1.1.

herbivore

Thema geschlossen