Seite 1 von 2

Tastenkombinationen mit Keybd_event_()

Verfasst: 27.08.2008 09:39
von Tompazi
Ich habe eine Prozedur geschrieben die ermöglichen soll zwei Tasten gleichzeitig drücken zu lassen (wie in diesem bsp Strg+A).
Ich ein bisschen herum gesucht und das hier zusammen gebastelt aber so funktionierts nicht und er schreibt mir einfach ein "a" anstatt alles zu makieren. Leider gehn mir die Ideen aus.

Code: Alles auswählen

Procedure PushKey(Key1$,Key2$)
  If Val(Key1$)
   vk1 = Val(Key1$)
  Else
   vk1 = VkKeyScan_(Asc(Key1$))
  EndIf
  If Val(Key2$)
   vk2 = Val(Key2$)
  Else
   vk2 = VkKeyScan_(Asc(Key2$))
  EndIf
   keybd_event_(vk1, 0, 0, 0)
   keybd_event_(vk2, 0, 0, 0)
   keybd_event_(vk2, 0, #KEYEVENTF_KEYUP, 0)
   keybd_event_(vk1, 0, #KEYEVENTF_KEYUP, 0) 
EndProcedure
Delay(1000)
PushKey("11","a")
MfG Tompazi

Verfasst: 27.08.2008 14:07
von hardfalcon
Versuch mal, 2 Keycodes mit | (bitweises AND) zu verknüpfen.

Verfasst: 27.08.2008 14:27
von Tompazi
äh was?, wir sind hier im Anfängerforum, könntest du mir das genauer erklären oder ein example geben das wäre nett

Danke Tompazi

Verfasst: 27.08.2008 14:28
von HeX0R
hardfalcon hat geschrieben:Versuch mal, 2 Keycodes mit | (bitweises AND) zu verknüpfen.
*hust* Was ?

Verfasst: 27.08.2008 14:39
von Tompazi
also du verstehst es auch nicht
da bin ich aber beruhigt :)
MfG Tompazi

//Edit
btw, unter welcher Lizenz stehen die Codes im Codearchiv?

Verfasst: 27.08.2008 15:17
von Kaeru Gaman
verstehbar ist das schon, es entbehrt nur jeden Sinnes...

folgendes Beispiel mag das verdeutlichen:

Code: Alles auswählen

v1 = Asc("C")
v2 = Asc("E")
v3 = v1 & v2
v4 = v1 | v2

Debug "AND-Wert: " + Str(v3) + ", Zeichen: " + Chr(v3)
Debug "OR-Wert: " + Str(v4) + ", Zeichen: " + Chr(v4)
zuerst werden die Zeichencodes für "C" und für "E" bitweise AND verknüpft.
denn werden die Zeichencodes für "C" und für "E" bitweise OR verknüpft.
die ergebnisse zeigen, wie unsinnig das ist.

Re: Tastenkombinationen mit Keybd_event_()

Verfasst: 27.08.2008 15:33
von edel
Tompazi hat geschrieben:Ich habe eine Prozedur geschrieben die ermöglichen soll zwei Tasten gleichzeitig drücken zu lassen (wie in diesem bsp Strg+A).
Ich ein bisschen herum gesucht und das hier zusammen gebastelt aber so funktionierts nicht und er schreibt mir einfach ein "a" anstatt alles zu makieren. Leider gehn mir die Ideen aus.
Das liegt daran das du einen Hexwert uebergibst, ihn aber nicht als solchen
behandelst. Also nicht 11 uebergeben sondern 17.

Verfasst: 27.08.2008 15:54
von Tompazi
Oh, ich bin Leider zu dumm für alles ein

Code: Alles auswählen

Debug #VK_CONTROL
sagt schon alles -.-
aber wie komme ich auf den richtigen Wert also von 0x11 auf 17?

Verfasst: 27.08.2008 15:55
von edel

Code: Alles auswählen

debug $11

Verfasst: 27.08.2008 16:00
von Tompazi
*heul* ich scheitere immer an den einfachsten Aufgaben :cry:

aber Danke

MfG Tompazi

//Edit

Und wie bekomme ich einen String$ = "11" in Key = $11

be patient pls