Seite 1 von 1

Inkey mit Api

Verfasst: 04.08.2005 11:04
von Lukas-P
Hallo :-D

Ich gibts keyboardinkey() auch für API?

Ich weis ja das man mit GetAsyncKeyState_() abfragen kann das eine bestimmte TAste gedrückt wurde aber nicht welche? (Komischer Satz /:-> )

Verfasst: 04.08.2005 11:21
von Lukas-P
Ich hab da was selber programmiert bekommen das ist aber irgendwie müll :-D:

Code: Alles auswählen

Procedure.s apiinkey()
  For asc=0 To 100
    If GetAsyncKeyState_(asc)
      ProcedureReturn Chr(asc+32)
      Break
    EndIf
  Next asc
EndProcedure

Verfasst: 04.08.2005 15:09
von Ynnus
mach es so:

Code: Alles auswählen

if GetAsyncKeyState_(#VK_ESCAPE)
  ;... tu etwas bei escape
elseif GetAsyncKeyState_(#VK_SPACE)
  ;... tu etwas bei leertaste
;... usw
endif
Die Virtuellen Keycodes findest du in der Win32-Hilfedatei unter dem Stichpunkt "Virtual-key Codes". (oder im Internet sicher auch, wenn du nach den Virtual key Codes suchst.)

Verfasst: 04.08.2005 15:11
von Leo
Sunny, er will keyboardinkey() ersetzen.

Verfasst: 04.08.2005 15:14
von DarkDragon
Leo hat geschrieben:Sunny, er will keyboardinkey() ersetzen.
*Kopfgegentischkantehau* Das versucht Sunny ihm ja zu erklären.

Verfasst: 04.08.2005 15:15
von Leo
DarkDragon hat geschrieben:
Leo hat geschrieben:Sunny, er will keyboardinkey() ersetzen.
*Kopfgegentischkantehau* Das versucht Sunny ihm ja zu erklären.
:freak: :allright:

Verfasst: 04.08.2005 15:25
von remi_meier
GetKeyNameText_()
+ lparam()
oder Callback
solltens tun...

edit:
oder ToAscii_(), MapVirtualKey_(), GetKeyboardState_()

Verfasst: 04.08.2005 16:22
von Ynnus
Jede Taste abzufragen ohne 105 Ifs zu machen könnte man auch noch mittels Callback machen. Dann die Message WM_KEYDOWN abfangen und den wParam in eine Variable = 1 speichern, dies ist der Keycode der gedrückten Taste. Bei WM_KEYUP wieder diese Variable = 0 setzen.
Dann kannst du jede Taste mittels if Tastenarray(VK_CODE) = 1 abfragen. Es empfielt sich also, nicht 105 Variablen zu nehmen sondern ein Array wobei der Keycode immer den Index im Array darstellt. ;)

Nachteil an der Sache ist, dass man dafür einen Callback braucht und in PB das ja nicht direkt verfügbar ist sondern nur auf Umwegen. Mittels vollständiger WinAPI-Programmierung wär ein Callback immer direkt dabei, mit dem Fenster.