Inkey mit Api

Windowsspezifisches Forum , API ,..
Beiträge, die plattformübergreifend sind, gehören ins 'Allgemein'-Forum.
Benutzeravatar
Lukas-P
Beiträge: 262
Registriert: 07.10.2004 12:03

Inkey mit Api

Beitrag 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 /:-> )
Benutzeravatar
Lukas-P
Beiträge: 262
Registriert: 07.10.2004 12:03

Beitrag 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
Benutzeravatar
Ynnus
Beiträge: 855
Registriert: 29.08.2004 01:37
Kontaktdaten:

Beitrag 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.)
Leo
Beiträge: 420
Registriert: 26.10.2004 18:26

Beitrag von Leo »

Sunny, er will keyboardinkey() ersetzen.
DarkDragon
Beiträge: 6291
Registriert: 29.08.2004 08:37
Computerausstattung: Hoffentlich bald keine mehr
Kontaktdaten:

Beitrag von DarkDragon »

Leo hat geschrieben:Sunny, er will keyboardinkey() ersetzen.
*Kopfgegentischkantehau* Das versucht Sunny ihm ja zu erklären.
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.
Leo
Beiträge: 420
Registriert: 26.10.2004 18:26

Beitrag von Leo »

DarkDragon hat geschrieben:
Leo hat geschrieben:Sunny, er will keyboardinkey() ersetzen.
*Kopfgegentischkantehau* Das versucht Sunny ihm ja zu erklären.
:freak: :allright:
Benutzeravatar
remi_meier
Beiträge: 1078
Registriert: 29.08.2004 20:11
Wohnort: Schweiz

Beitrag von remi_meier »

GetKeyNameText_()
+ lparam()
oder Callback
solltens tun...

edit:
oder ToAscii_(), MapVirtualKey_(), GetKeyboardState_()
Benutzeravatar
Ynnus
Beiträge: 855
Registriert: 29.08.2004 01:37
Kontaktdaten:

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