Event von WinAPI - RegisterHotKey() abfragen?
Übersicht

#ReaperNewsposterBetreff: Event von WinAPI - RegisterHotKey() abfragen? |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
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 ![]() |
||
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 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
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. ![]() |
||
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 |
#ReaperNewsposter |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Uh, danke ![]() Konnte das abändern ![]() (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 ![]() |
||
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 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
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. ![]() |
||
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 |
#ReaperNewsposter |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Ohje o_O
Naja, ok, Alt+Tab reicht ja erstmal seeehr gut ![]() Vielen dank dennoch ![]() |
||
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 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
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! ![]() |
||
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 |
#ReaperNewsposter |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Wow! Vielen Dank! ![]() 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]
![]() ![]() Aber vielen Dank! ![]() ![]() |
||
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 |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group