Überprüfen ob der Benutzter auf den Desktop geklickt hat?

Übersicht BlitzMax, BlitzMax NG Allgemein

Neue Antwort erstellen

klin

Betreff: Überprüfen ob der Benutzter auf den Desktop geklickt hat?

BeitragDo, Jul 24, 2008 2:00
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo leute,
ich wollte mal fragen, wie man herausfinden kann, ob jemand auf den Desktop oder sonst wohin (auch fenstern) geklickt hat. Das brauche ich, damit ich mein eigenes Traymenü machen kann. Denn so wie üblich, wenn das menü aufgeht und danach sonstwo klickt, das das menü verschwindet. Ich muss das ja selbst machen, weil ich das menü beskinnen möchte.
Also ist es möglich herauszufinden, ob jemand ausserhalb eines Fenster geklickt hat? Wenn ja, wie?^^

THX
MFG
Klin
 

Dreamora

BeitragDo, Jul 24, 2008 2:16
Antworten mit Zitat
Benutzer-Profile anzeigen
da musst du die Windows API nutzen und das alles abfangen.

die Frage ist inwiefern das dir VirenScanner / Sicherheitsprogramme solches Hijacking durchgehen lassen, da Input Tracking normalerweise als Wurm / Wurm ähnliches Verhalten gewertet wird.
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen.

klin

BeitragDo, Jul 24, 2008 3:26
Antworten mit Zitat
Benutzer-Profile anzeigen
Oh mann... Das ist echt scheiße...
Das Menü hab ich ja schonmal Fertig... Nurnoch die Abfrage fehlt :/
Oder kann man nen Standard Menü erstellen und es denoch beskinnen?
THX
MFG
Klin

P.S. Fals doch nicht, würde ich mich trotzdem freuen, wenigstens den Befhel oder nen code der WinAPI zubekommen!
 

ChristianK

BeitragDo, Jul 24, 2008 10:54
Antworten mit Zitat
Benutzer-Profile anzeigen
Wenn du das Menü selbst machen willst, hast du eigentlich 3 Möglichkeiten:

1. Du fängst die Nachricht WM_KILLFOCUS ab, die das Fenster erhält, wenn es nicht mehr aktiv ist und schliesst das Menü dann. Ob innerhalb deines Fensters geklickt wurde, musst du dann selbst herausfinden.

2. Du installierst einen Hook, der alle eingehenden Key- und Mousehits abfängt und reagierst entsprechend darauf.

3. Du benutzt GetAsyncKeyState. Dann gibt es keine Probleme mit Antiviren-Programmen.

Code: [AUSKLAPPEN]
SuperStrict

Extern "Win32"
   Function GetAsyncKeyState:Int( vkey:Int )
End Extern

Const MOUSE_LEFT:Int = $01
Const MOUSE_MIDDLE:Int = $04
Const MOUSE_RIGHT:Int = $02

Local status:Int

While True
   If GetAsyncKeyState( MOUSE_LEFT ) & $8000
      If status = 0
         Print "Klick!"
         status = 1
      End If
      Else
      status = 0
   End If
Wend
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

D2006

Administrator

BeitragDo, Jul 24, 2008 15:11
Antworten mit Zitat
Benutzer-Profile anzeigen
Sendet BMax nicht auf ein AppSuspend-Event? Das sollte dann doch auch gehen.
Intel Core i5 2500 | 16 GB DDR3 RAM dualchannel | ATI Radeon HD6870 (1024 MB RAM) | Windows 7 Home Premium
Intel Core 2 Duo 2.4 GHz | 2 GB DDR3 RAM dualchannel | Nvidia GeForce 9400M (256 MB shared RAM) | Mac OS X Snow Leopard
Intel Pentium Dual-Core 2.4 GHz | 3 GB DDR2 RAM dualchannel | ATI Radeon HD3850 (1024 MB RAM) | Windows 7 Home Premium
Chaos Interactive :: GoBang :: BB-Poker :: ChaosBreaker :: Hexagon :: ChaosRacer 2

Neue Antwort erstellen


Übersicht BlitzMax, BlitzMax NG Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group