Event von WinAPI - RegisterHotKey() abfragen?

Übersicht BlitzMax, BlitzMax NG Allgemein

Neue Antwort erstellen

 

#Reaper

Newsposter

Betreff: Event von WinAPI - RegisterHotKey() abfragen?

BeitragSa, Sep 15, 2007 14:56
Antworten mit Zitat
Benutzer-Profile anzeigen
Also ich versuche via der WinAPI-Funktion RegisterHotKey() die Tastenkombo Alt+Tab zu "unterdücken".
Das funktioniert auch soweit ganz gut, bis auf, dass ich selbst nicht mehr die Taste Alt+Tab abfragen kann ( mit KeyHit etc. und ist moment noch ein normales Graphics()-Fenster). Nun kann man ja bei RegisterHotKey() auch eine Event-Id mit angeben, aber ich weiß nicht, wie ich das in BMax abfragen soll. Die Funktionen von MaxGUI gehen da wohl scheinbar nicht.

So registrier ich den HotKey:

Code: [AUSKLAPPEN]
RegisterHotKey(GetActiveWindow(), 1001, 1, KEY_TAB)



Nun zu meiner Frage^^:
Wie kann ich nun den Event abfragen?


PS: Wer weiß, wie man den Windows-Key unterdrückt: Bitte bescheid geben Wink
AMD Athlon 64 3500+, ATI AX800 Pro/TD, 2048 MB DRR 400 von Infineon, ♥RIP♥ (2005 - Juli 2015 -> sic!)
Blitz3D, BlitzMax, MaxGUI, Monkey X; Win7
 

ChristianK

BeitragSa, Sep 15, 2007 15:05
Antworten mit Zitat
Benutzer-Profile anzeigen
Wenn die Kombination gedrückt wird, sendet Windows die Nachricht WM_HOTKEY an das Fenster. Die Nachricht wird durch die "WndProc" des Fensters verarbeitet. Diese Funktion schreibt man selbst. Die von Sibly geschriebene ignoriert sie aber, sodass du dir entweder eine eigene Funktion machen oder sie direkt im Modul anpassen musst ( brl.dxgraphics ).

PS: Der Modifikator für die Windowstasten ist $0008. Wink
AdvanceLcd
Intel Core 2 Duo 3.2 GHz, 4 GB RAM, GeForce 8800 GTX | MacBook Pro 15,4″ Intel Core 2 Duo 2.4 GHz, 2 GB RAM, GeForce 8600M GT
 

#Reaper

Newsposter

BeitragSa, Sep 15, 2007 16:18
Antworten mit Zitat
Benutzer-Profile anzeigen
Uh, danke Very Happy

Konnte das abändern Smile

(Btw: Wie kann ich eine Funktion eines Modules überschreiben lassen? Weil ich bei WM_HOTKEY eine Funktion ausführen lasse, welche aber sowohl im Modul als auch im Programm sein soll..?)

Mhh.. irgendwie ist die Windows-Taste ja auch kein HotKey (ist ja nur 1ne Taste), weiß nicht wie ich die blocken soll, vk=0 geht auch nicht.. :-/
Naja, Alt+Tab ist schonmal super, danke Very Happy
AMD Athlon 64 3500+, ATI AX800 Pro/TD, 2048 MB DRR 400 von Infineon, ♥RIP♥ (2005 - Juli 2015 -> sic!)
Blitz3D, BlitzMax, MaxGUI, Monkey X; Win7
 

ChristianK

BeitragSa, Sep 15, 2007 17:11
Antworten mit Zitat
Benutzer-Profile anzeigen
Um die Windowstasten alleine ( also ohne Kombination ) zu blockieren, solltest du Hook benutzen.
Im MSDN gibt's nen Artikel dazu -> http://msdn2.microsoft.com/en-...19746.aspx
Ist aber ein bisschen kompliziert. Smile
AdvanceLcd
Intel Core 2 Duo 3.2 GHz, 4 GB RAM, GeForce 8800 GTX | MacBook Pro 15,4″ Intel Core 2 Duo 2.4 GHz, 2 GB RAM, GeForce 8600M GT
 

#Reaper

Newsposter

BeitragSa, Sep 15, 2007 17:56
Antworten mit Zitat
Benutzer-Profile anzeigen
Ohje o_O

Naja, ok, Alt+Tab reicht ja erstmal seeehr gut Very Happy

Vielen dank dennoch Smile
AMD Athlon 64 3500+, ATI AX800 Pro/TD, 2048 MB DRR 400 von Infineon, ♥RIP♥ (2005 - Juli 2015 -> sic!)
Blitz3D, BlitzMax, MaxGUI, Monkey X; Win7
 

ChristianK

BeitragSa, Sep 15, 2007 20:04
Antworten mit Zitat
Benutzer-Profile anzeigen
Da so eine Funktion vielleicht noch öfter gebraucht werden kann, habe ich sie in BlitzMax umgeschrieben und im Codearchiv gepostet -> https://www.blitzforum.de/foru...p?p=266701

Viel Spass! Very Happy
AdvanceLcd
Intel Core 2 Duo 3.2 GHz, 4 GB RAM, GeForce 8800 GTX | MacBook Pro 15,4″ Intel Core 2 Duo 2.4 GHz, 2 GB RAM, GeForce 8600M GT
 

#Reaper

Newsposter

BeitragSa, Sep 15, 2007 20:13
Antworten mit Zitat
Benutzer-Profile anzeigen
Wow! Vielen Dank! Very Happy

Ich hätte es wohl eh nie hinbekommen^^
Weil ich z.B. sowas noch garnicht so weiß:
Code: [AUSKLAPPEN]
Local key:Int = Byte Ptr( lparam )[0]

Sad Embarassed


Aber vielen Dank! Smile Very Happy
AMD Athlon 64 3500+, ATI AX800 Pro/TD, 2048 MB DRR 400 von Infineon, ♥RIP♥ (2005 - Juli 2015 -> sic!)
Blitz3D, BlitzMax, MaxGUI, Monkey X; Win7

Neue Antwort erstellen


Übersicht BlitzMax, BlitzMax NG Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group