Tastatur abfragen (ohne DirectX)

Für allgemeine Fragen zur Programmierung mit PureBasic.
DarkDragon
Beiträge: 6291
Registriert: 29.08.2004 08:37
Computerausstattung: Hoffentlich bald keine mehr
Kontaktdaten:

Beitrag von DarkDragon »

vonTurnundTaxis hat geschrieben:Unsinn...

Code: Alles auswählen

Structure kbBytes
  b.b[256]
EndStructure

kbArray.kbBytes

Repeat
  GetKeyboardState_(@kbArray)
  Debug kbArray\b[#VK_ESCAPE]
  Delay(1000)
Until kbArray\b[#VK_ESCAPE] = 0
MessageRequester("OK", "ESCAPE and the program ends.")
End
Nur funzt es in PureBasic nicht. Weder mit nem normalen Array, noch so in ner Struktur. In anderen Sprachen schon.
Angenommen es gäbe einen Algorithmus mit imaginärer Laufzeit O(i * n), dann gilt O((i * n)^2) = O(-1 * n^2) d.h. wenn man diesen Algorithmus verschachtelt ist er fertig, bevor er angefangen hat.
Benutzeravatar
vonTurnundTaxis
Beiträge: 2130
Registriert: 06.10.2004 20:38
Wohnort: Bayreuth
Kontaktdaten:

Beitrag von vonTurnundTaxis »

Wie jetzt?
Nicht durch Zorn, sondern durch Lachen tötet man
ClipGrab | Pastor - jetzt mit kurzen URLs!
Benutzeravatar
AndyX
Beiträge: 1272
Registriert: 17.12.2004 20:10
Wohnort: Niederösterreich
Kontaktdaten:

Beitrag von AndyX »

z.b.

Code: Alles auswählen

GetAsyncKeyState_(#VK_ESCAPE | #VK_IRGENDWAS)
DarkDragon
Beiträge: 6291
Registriert: 29.08.2004 08:37
Computerausstattung: Hoffentlich bald keine mehr
Kontaktdaten:

Beitrag von DarkDragon »

AndyX hat geschrieben:z.b.

Code: Alles auswählen

GetAsyncKeyState_(#VK_ESCAPE | #VK_IRGENDWAS)
Das wollen wir ja garnicht.

[EDIT]
GetKeyboardState

The GetKeyboardState function copies the status of the 256 virtual keys to the specified buffer.


· lpKeyState
Points to the 256-byte array that will receive the status data for each virtual key.
Zuletzt geändert von DarkDragon am 06.09.2005 12:48, insgesamt 1-mal geändert.
Angenommen es gäbe einen Algorithmus mit imaginärer Laufzeit O(i * n), dann gilt O((i * n)^2) = O(-1 * n^2) d.h. wenn man diesen Algorithmus verschachtelt ist er fertig, bevor er angefangen hat.
Benutzeravatar
AndyX
Beiträge: 1272
Registriert: 17.12.2004 20:10
Wohnort: Niederösterreich
Kontaktdaten:

Beitrag von AndyX »

vTT wollte doch ne WinAPI Funktion zum Abfragen der Tastatur :?
DarkDragon
Beiträge: 6291
Registriert: 29.08.2004 08:37
Computerausstattung: Hoffentlich bald keine mehr
Kontaktdaten:

Beitrag von DarkDragon »

AndyX hat geschrieben:vTT wollte doch ne WinAPI Funktion zum Abfragen der Tastatur :?
Ja, für alle Tasten, und nicht für eine bestimmte.
Angenommen es gäbe einen Algorithmus mit imaginärer Laufzeit O(i * n), dann gilt O((i * n)^2) = O(-1 * n^2) d.h. wenn man diesen Algorithmus verschachtelt ist er fertig, bevor er angefangen hat.
Benutzeravatar
AndyX
Beiträge: 1272
Registriert: 17.12.2004 20:10
Wohnort: Niederösterreich
Kontaktdaten:

Beitrag von AndyX »

Achso... Dann sry :)
Benutzeravatar
vonTurnundTaxis
Beiträge: 2130
Registriert: 06.10.2004 20:38
Wohnort: Bayreuth
Kontaktdaten:

Beitrag von vonTurnundTaxis »

Ein grundlegendes Beispiel:

Code: Alles auswählen

If OpenWindow(#PB_Any, 0, 0, 100, 100, #PB_Window_ScreenCentered, "Eingabe-Test")

Repeat
  If WaitWindowEvent() =  #WM_KEYDOWN
    If GetAsyncKeyState_(#VK_SHIFT)
      antwort$ + Chr(EventwParam())
    Else
      antwort$ + LCase(Chr(EventwParam()))
    EndIf
  EndIf
  Debug antwort$
Until GetAsyncKeyState_(#VK_ESCAPE)

EndIf
Man muss natürlich noch eine Unterscheidung bei Sonderzeichen machen, aber das dürfte als Grundlage genügen.
Nicht durch Zorn, sondern durch Lachen tötet man
ClipGrab | Pastor - jetzt mit kurzen URLs!
Antworten