Seite 1 von 1
Inkey mit Api
Verfasst: 04.08.2005 11:04
von Lukas-P
Hallo
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

:
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.

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.