Aktuelle Zeit: 24.10.2020 19:38

Alle Zeiten sind UTC + 1 Stunde [ Sommerzeit ]




Ein neues Thema erstellen Auf das Thema antworten  [ 7 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: [LIB] WIH - Mouse & Keyboard Library [Windows x64]
BeitragVerfasst: 15.03.2020 12:41 
Offline
Benutzeravatar

Registriert: 25.09.2016 01:42
WIH (Window Input Handler)
wih.lib ist eine kleine in FASM geschriebene Library um Maus & Keyboard Eingaben abzufragen.

Beispiel:
Code:
;WIH - WINDOW INPUT HANDLER
;A SMALL LIBRARY TO HANDLE MOUSE AND KEYBOARD INPUT
;AUTHOR: MIJIKAI
;VERSION: 1.1

EnableExplicit

Import "wih.lib"
  wihCreate.i(hwnd.i)
EndImport

Interface WIH
  Focus.i()                       ;is the window focused / is the input attached to the window thread!
  Key.i(Code.i)                   ;is the key pushed? / use #VK key-codes
  KeySgl.i(Code.i)                ;was the butten pushed? / use #VK key-codes
  KeyChr.i()                      ;get the chr key code of the pushed key
  MouseCheck.i()                  ;is the mouse inside the client area of the window
  MouseLeft.i()                   ;is the left mouse button pushed?
  MouseRight.i()                  ;is the right mouse button pushed?
  MouseMiddle.i()                 ;is the middle mouse button pushed?
  MouseLeftSgl.i()                ;was the left mouse button pushed?
  MouseRightSgl.i()               ;was the right mouse button pushed?
  MouseMiddleSgl.i()              ;was the middle mouse button pushed?
  MouseLeftDbl.i()                ;was the left mouse button pushed twice in a short time? / doubleclick!
  MouseRightDbl.i()               ;was the right mouse button pushed twice in a short time? / doubleclick!
  MouseMiddleDbl.i()              ;was the middle mouse button pushed twice in a short time? / doubleclick!
  MouseWheel.i(Code.i = #Null)    ;was the mousewheel moved? / optional check if a special key is pressed!
  MouseX.i()                      ;get the mouse horizontal (x) postion / offset from the top left corner of the client area!
  MouseY.i()                      ;get the mouse verical (y) postion / offset from the top left corner of the client area!
  Flush.i()                       ;flush the input buffers / needed for all 'Sgl' and 'Dbl' functions to work properly!
  Release.i()                     ;release the input handler and all associated resources
EndInterface

Procedure.i Demo(Title.s = #Null$,Width.i = 600,Height.i = 400)
  Protected wnd.i
  Protected wnd_flags.i
  Protected wnd_event.i
  Protected wnd_exit.i
  Protected *input.WIH
  wnd_flags = #PB_Window_SystemMenu|#PB_Window_ScreenCentered|#PB_Window_MinimizeGadget|#PB_Window_MaximizeGadget|#PB_Window_SizeGadget
  wnd = OpenWindow(#PB_Any,#Null,#Null,Width,Height,Title,wnd_flags)
  If wnd
    WindowBounds(wnd,Width,Height,#PB_Ignore,#PB_Ignore)
    *input = wihCreate(WindowID(wnd))
    If *input
      Repeat
        Select WaitWindowEvent()
          Case #PB_Event_CloseWindow
            wnd_exit = #True
        EndSelect
        ;-------------------------------
        ;check mouse and keyboard input!
        If *input\MouseLeftDbl()
          Debug "DoubleClick!"
        EndIf
        Debug *input\MouseY()
        ;-------------------------------
        *input\Flush();<- when done flush the input buffers!
      Until wnd_exit
      *input\Release();<- release all resources
    EndIf
    CloseWindow(wnd)
  EndIf
  ProcedureReturn #Null
EndProcedure

Demo("WIH")

End


Download Version v.1.1:
https://www.dropbox.com/s/cvzmgtvcchtmilm/wih_v.1.1.zip?dl=0

_________________

Links:
PureBasic Discord
[INCLUDE] GLFW 3.3 Library
[MODULE] Bass Library 2.4 (Win)
[LIBRARY] Hexi Binary2Hex (Win)



Zuletzt geändert von Mijikai am 17.03.2020 01:42, insgesamt 2-mal geändert.

Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: [LIB] WIH - Mouse & Keyboard Library [Windows x64]
BeitragVerfasst: 16.03.2020 08:34 
Offline

Registriert: 08.09.2004 20:18
Wohnort: Zürich
Hallo,

grundsätzlich cool, aber mir erschliesst sich der sinn nicht. Erkläre doch mal warum du diesen Umweg gegangen bist.
Ich mache auch manchmal Sachen nur um sie mal auszuprobieren. Wie gerade meine MineCraftClone. Es ist keine
Kritik, lediglich Interesse.

Gruss TFT

_________________
TFT

Code faster than fast.
W10 ,i5 4*3.4 MHz,16 GB Ram,GTX Titan, 3 Monitore UHD
ARDUINO Freak :-)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: [LIB] WIH - Mouse & Keyboard Library [Windows x64]
BeitragVerfasst: 16.03.2020 19:13 
Offline
Benutzeravatar

Registriert: 25.09.2016 01:42
Hat sich angeboten, da ich gerne in Assembly programmiere und ich nie wirklich zufrieden mit den PB Optionen war.
Die Library bietet mir mehr und einfachere Funktionen ohne Einschränkungen oder DirectX :)

_________________

Links:
PureBasic Discord
[INCLUDE] GLFW 3.3 Library
[MODULE] Bass Library 2.4 (Win)
[LIBRARY] Hexi Binary2Hex (Win)



Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: [LIB] WIH - Mouse & Keyboard Library [Windows x64]
BeitragVerfasst: 16.03.2020 19:44 
Offline

Registriert: 08.09.2004 20:18
Wohnort: Zürich
Hallo,

Sie kommt also ohne den Examine Kram aus und berücksichtigt auch die Aktuelle Fenster Position, kommt auch mit Negativen Fenster Offsets klar die entstehen wenn 3 Monitore Verwendung finden? Funktioniert das im Window genauso wie Im Screen?

Gruss TFT

_________________
TFT

Code faster than fast.
W10 ,i5 4*3.4 MHz,16 GB Ram,GTX Titan, 3 Monitore UHD
ARDUINO Freak :-)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: [LIB] WIH - Mouse & Keyboard Library [Windows x64]
BeitragVerfasst: 16.03.2020 20:57 
Offline
Benutzeravatar

Registriert: 25.09.2016 01:42
Hab (ungetestet) Multi-Monitor Unterstützung hinzugefügt (ich selbst brauch das nicht hab max. nur 2 Monitore) :)
Wie der Name vermuten lässt wird immer ein Fenster benötigt.

_________________

Links:
PureBasic Discord
[INCLUDE] GLFW 3.3 Library
[MODULE] Bass Library 2.4 (Win)
[LIBRARY] Hexi Binary2Hex (Win)



Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: [LIB] WIH - Mouse & Keyboard Library [Windows x64]
BeitragVerfasst: 18.09.2020 07:46 
Offline

Registriert: 08.09.2004 20:18
Wohnort: Zürich
Hallo,

habe das jetzt mal in mein Aktuelles Projekt eingebunden. Läuft super. Würdest du das auch um einige Funktionen erweitern? ich hätte da so einige Bedürftnisse :-)

Für zum Umgang damit, müsste ich noch was wissen. Tasttatur Eingaben werden ja via Interupt an Windows gesendet. Und diese dann als Nachrichten von Windows weitergeleitet. Ich möchte jetzt
die Ereignisse sehr schnell verarbeiten. Holst du die Ereignisse von Windows oder direkt aus dem Interupt ereigniss? Ich möchte in einem Thread der mit 1000 FPS läuft. Die Tasten und Mouse coordinaten
abfragen. Get das so schnell. Oder ist die Abfrage von Windows abhängig?.

Gruss TFT

_________________
TFT

Code faster than fast.
W10 ,i5 4*3.4 MHz,16 GB Ram,GTX Titan, 3 Monitore UHD
ARDUINO Freak :-)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: [LIB] WIH - Mouse & Keyboard Library [Windows x64]
BeitragVerfasst: 18.09.2020 09:26 
Offline
Benutzeravatar

Registriert: 25.09.2016 01:42
Die Eingabe Ereignisse werden über das Fenster abgefragt.
Schneller und direkter wäre eine Zugriff über die Direct- oder RawInput-Schnittstelle.
RawInput ist wohl die beste Methode aber auch die Aufwändigste.

_________________

Links:
PureBasic Discord
[INCLUDE] GLFW 3.3 Library
[MODULE] Bass Library 2.4 (Win)
[LIBRARY] Hexi Binary2Hex (Win)



Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 7 Beiträge ] 

Alle Zeiten sind UTC + 1 Stunde [ Sommerzeit ]


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 4 Gäste


Sie dürfen keine neuen Themen in diesem Forum erstellen.
Sie dürfen keine Antworten zu Themen in diesem Forum erstellen.
Sie dürfen Ihre Beiträge in diesem Forum nicht ändern.
Sie dürfen Ihre Beiträge in diesem Forum nicht löschen.

Suche nach:
Gehe zu:  
cron

 


Powered by phpBB © 2008 phpBB Group | Deutsche Übersetzung durch phpBB.de
subSilver+ theme by Canver Software, sponsor Sanal Modifiye