Tastenkombinationen mit Keybd_event_()

Anfängerfragen zum Programmieren mit PureBasic.
Tompazi
Beiträge: 211
Registriert: 22.09.2007 15:38

Tastenkombinationen mit Keybd_event_()

Beitrag 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
Bild
Benutzeravatar
hardfalcon
Beiträge: 3447
Registriert: 29.08.2004 20:46

Beitrag von hardfalcon »

Versuch mal, 2 Keycodes mit | (bitweises AND) zu verknüpfen.
Tompazi
Beiträge: 211
Registriert: 22.09.2007 15:38

Beitrag 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
Bild
Benutzeravatar
HeX0R
Beiträge: 3042
Registriert: 10.09.2004 09:59
Computerausstattung: AMD Ryzen 7 5800X
96Gig Ram
NVIDIA GEFORCE RTX 3060TI/8Gig
Win11 64Bit
G19 Tastatur
2x 24" + 1x27" Monitore
Glorious O Wireless Maus
PB 3.x-PB 6.x
Oculus Quest 2 + 3
Kontaktdaten:

Beitrag von HeX0R »

hardfalcon hat geschrieben:Versuch mal, 2 Keycodes mit | (bitweises AND) zu verknüpfen.
*hust* Was ?
Tompazi
Beiträge: 211
Registriert: 22.09.2007 15:38

Beitrag 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?
Bild
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag 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.
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Benutzeravatar
edel
Beiträge: 3667
Registriert: 28.07.2005 12:39
Computerausstattung: GameBoy
Kontaktdaten:

Re: Tastenkombinationen mit Keybd_event_()

Beitrag 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.
Tompazi
Beiträge: 211
Registriert: 22.09.2007 15:38

Beitrag 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?
Bild
Benutzeravatar
edel
Beiträge: 3667
Registriert: 28.07.2005 12:39
Computerausstattung: GameBoy
Kontaktdaten:

Beitrag von edel »

Code: Alles auswählen

debug $11
Tompazi
Beiträge: 211
Registriert: 22.09.2007 15:38

Beitrag 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
Bild
Antworten