Alternative zu ExamineKeyboard?

Für allgemeine Fragen zur Programmierung mit PureBasic.
DePe
Beiträge: 194
Registriert: 26.11.2017 16:17

Alternative zu ExamineKeyboard?

Beitrag von DePe »

PB v6.12

Ich verwende ExamineKeybord() und KeyboardPushed() um bei einen Klick auf eine Schaltfläche zu prüfen, ob die Strg- oder Umschalt-Taste gedrückt ist.
Mit Windows 7 wird beim Beenden des Programms dann der Bildschirm kurz dunkel, wenn man das Programm des erstemal verwendet hat. Ich vermute das hat mit DirectX zu tun, das von ExamineKeyboard() verwendet wird.

Unter Linux und MacOS gibt es ja kein DirectX, dort wird das störende Verhalten wohl nicht vorhanden sein. Hat das schon jemand beobachtet?

In PB gibt es anscheinend keine andere Möglichkeit um die Tastatur abzufragen, bleibt nur die Windows API. Wenn man für die anderen OS ExamineKeyboard verwenden kann, wäre das die einfachste Lösung.
Oder kennt jemand einen besseren Weg für Window, Linux und MacOS?

Peter
Benutzeravatar
jacdelad
Beiträge: 404
Registriert: 03.02.2021 13:39
Wohnort: Riesa
Kontaktdaten:

Re: Alternative zu ExamineKeyboard?

Beitrag von jacdelad »

Hi,
ich kann dir nicht wirklich helfen, mir ist aber auch schon aufgefallen, dass der Bildschirm kurz dunkel wird...allerdings nur bei bestimmten Kombinatioben von OS/PB. Ich hatte erst an veraltete Treiber gedacht, war aber alles ok. Vielleicht lässt sich das irgendwie beheben.
Windows API wäre mir zu umständlich, was anderes fällt mir nicht ein.
Guten Morgen, das ist ein schöner Tnetennba!

PureBasic 6.21/Windows 11 x64/Ryzen 7900X/32GB RAM/3 TB SSD
Synology DS1821+/DX517, 130.9TB+50.8TB+2TB SSD
Lord
Beiträge: 324
Registriert: 21.01.2008 19:11

Re: Alternative zu ExamineKeyboard?

Beitrag von Lord »

Hi!

Ist denn für Windows z.B. GetAsyncKeyState_(#VK_CONTROL) keine Alternative?

Code: Alles auswählen

Procedure TestGadget()
  If GetAsyncKeyState_(#VK_CONTROL)&$8000
    SetGadgetText(1, "CTRL")
  Else
    SetGadgetText(1, "normal")
  EndIf
EndProcedure

OpenWindow(1, 10, 10, 200, 200, "")
ButtonGadget(1, 70, 90, 60, 20, "Test")

Repeat
  Event=WaitWindowEvent()
  Select Event
    Case #PB_Event_Gadget
      TestGadget()
    Case #PB_Event_CloseWindow
      Break
  EndSelect
ForEver
Bild
DePe
Beiträge: 194
Registriert: 26.11.2017 16:17

Re: Alternative zu ExamineKeyboard?

Beitrag von DePe »

Hallo,

danke, ich werde für Windows die API verwenden, und für die anderen OS vorerst ExamineKeyboard().

Peter
Benutzeravatar
mk-soft
Beiträge: 3852
Registriert: 24.11.2004 13:12
Wohnort: Germany

Re: Alternative zu ExamineKeyboard?

Beitrag von mk-soft »

Mal im englischen Forum suchen.
Es gibt auch für macOS und Linux ne Lösung
Alles ist möglich, fragt sich nur wie...
Projekte ThreadToGUI / EventDesigner V3 / OOP-BaseClass-Modul
Downloads auf MyWebspace / OneDrive
DePe
Beiträge: 194
Registriert: 26.11.2017 16:17

Re: Alternative zu ExamineKeyboard?

Beitrag von DePe »

Hallo mk-soft,

danke, ich habe die Funktionen im Code der PureBasic-IDE gefunden.

Peter
Antworten