KeyboardInkey() in PB3.30

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
Groudon
Beiträge: 55
Registriert: 05.06.2007 19:12
Kontaktdaten:

KeyboardInkey() in PB3.30

Beitrag von Groudon »

Gibt es so in PB3.30 was ähnliches wie KeyboardInkey() ???
Ich hab auch ein eigenes Forum:
www.g-f.de.am
ich benutze Version3.30
also bitte codes dafür benutzbar machen danke
Benutzeravatar
STARGÅTE
Kommando SG1
Beiträge: 7031
Registriert: 01.11.2005 13:34
Wohnort: Glienicke
Kontaktdaten:

Beitrag von STARGÅTE »

du müsstest mit API abreiten:

Code: Alles auswählen

Procedure.s GetKeyName(Asc)
 Name$=Space(255)
 GetKeyNameText_(MapVirtualKey_(Asc,0)*$10000,name$,255)
 ProcedureReturn Name$
EndProcedure
Procedure GetKey()
 For n=8 To 255
  If GetAsyncKeyState_(n) = -32767 : r=n : EndIf ; Pressed!
 Next n
 ProcedureReturn r
EndProcedure
Repeat
 Delay(10)
 x = GetKey() 
 If x : Debug GetKeyName(x) : EndIf
ForEver
PB 6.01 ― Win 10, 21H2 ― Ryzen 9 3900X, 32 GB ― NVIDIA GeForce RTX 3080 ― Vivaldi 6.0 ― www.unionbytes.de
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
Benutzeravatar
Groudon
Beiträge: 55
Registriert: 05.06.2007 19:12
Kontaktdaten:

Beitrag von Groudon »

hä, kapier ich nicht
Ich hab auch ein eigenes Forum:
www.g-f.de.am
ich benutze Version3.30
also bitte codes dafür benutzbar machen danke
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

gabs da keine keyboard-lib in der 3.30?
...da muss man doch nicht unbedingt ne API-lösung nehmen, nur ein workaround.
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Benutzeravatar
STARGÅTE
Kommando SG1
Beiträge: 7031
Registriert: 01.11.2005 13:34
Wohnort: Glienicke
Kontaktdaten:

Beitrag von STARGÅTE »

ja klar, man kann mit KeyboardPushed() die Tasten alles einzeln abfragen, oder besser mit KeyboardReleased(), aber dann ist ja das prob das der nachfolgende KeyboardReleased() NULL ergibt -.-
PB 6.01 ― Win 10, 21H2 ― Ryzen 9 3900X, 32 GB ― NVIDIA GeForce RTX 3080 ― Vivaldi 6.0 ― www.unionbytes.de
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
Benutzeravatar
Fluid Byte
Beiträge: 3110
Registriert: 27.09.2006 22:06
Wohnort: Berlin, Mitte

Beitrag von Fluid Byte »

Nicht nur das. Dann hat die Tastatur automatsich QWERTY Format. Nur KeyboardInkey() berücksichtigt "non-konforme" Tastaturen. Mann kann das Keyboardlayout zwar verändern das ist dann aber Windows only.
Windows 10 Pro, 64-Bit / Outtakes | Derek
Benutzeravatar
Groudon
Beiträge: 55
Registriert: 05.06.2007 19:12
Kontaktdaten:

Beitrag von Groudon »

ich kapier gar nichts
Ich hab auch ein eigenes Forum:
www.g-f.de.am
ich benutze Version3.30
also bitte codes dafür benutzbar machen danke
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

aaalso

1) es gibt kein KeyboardInkey in der 3.30

2) wenn du nur bestimmte tasten z.b. für die steuerung abfragen willst,
nimmst du KeyboardPushed()

3) wenn du ein keyboard zur texteingabe im screen realisieren willst,
kannst du das API-workaround benutzen, das STARGÅTE oben gepostet hat.


@STARGÅTE
habs mir jetzt erst mal genau angesehen...
du benutzt 248 GetAsyncKeyState_() calls? das ist doch wahnsinn.
schau dir mal GetKeyboardState_() an.
wenn du in der lage bist, die Keynames auszulesen (1.proc),
dann kannst du auch mit dem kompletten table,
den dir GetKeyboardState_() liefert etwas anfangen... ;)
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Benutzeravatar
STARGÅTE
Kommando SG1
Beiträge: 7031
Registriert: 01.11.2005 13:34
Wohnort: Glienicke
Kontaktdaten:

Beitrag von STARGÅTE »

Das war auch nicht von mir, sondern aus dem CodeArchiv.

Ich selber benutze ja meine selbstgebauten ScreenStringGadgets :wink:, habe ich ja schon mal gepostet (wo dann auch verschiedene Sonder Funktionen gehen (ALT+#Nr))
PB 6.01 ― Win 10, 21H2 ― Ryzen 9 3900X, 32 GB ― NVIDIA GeForce RTX 3080 ― Vivaldi 6.0 ― www.unionbytes.de
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
Benutzeravatar
Groudon
Beiträge: 55
Registriert: 05.06.2007 19:12
Kontaktdaten:

Beitrag von Groudon »

Ich brauch das so oder so nit mehr ich benutz einfach

Code: Alles auswählen

If KeyboardPushed(KeyID) And KeyboardPushed(KeyID)
copysprite(1,0)
EndIf
kann man den thead schließen
Ich hab auch ein eigenes Forum:
www.g-f.de.am
ich benutze Version3.30
also bitte codes dafür benutzbar machen danke
Antworten