mausbewegung an inaktives Fenster senden

Anfängerfragen zum Programmieren mit PureBasic.
TomTom
Beiträge: 130
Registriert: 18.10.2006 18:47

mausbewegung an inaktives Fenster senden

Beitrag von TomTom »

hi wie die überschrift schon sagt, möchte ich eine mausbewegung an ein inaktives fenster senden.

wie dies mit der tastatur geht weiß ich schon

Code: Alles auswählen

SendMessage_(Window,#WM_CHAR,Key,0) 
funktioniert auch gut!
aber wie sende ich eine mausbewegung?

vielen lieben dank!
Pure Basic 4.0
Benutzeravatar
TomS
Beiträge: 1508
Registriert: 23.12.2005 12:41
Wohnort: München

Beitrag von TomS »

Code: Alles auswählen

SetCursorPos_(x.l,y.l)
x und y sind Absolutwerte gezählt vom oberen linken Bildschirmrand
TomTom
Beiträge: 130
Registriert: 18.10.2006 18:47

Beitrag von TomTom »

das ist die maus auf dem desktop... aber mein fenster ist hinter einem anderen fenster, oder sogar minimiert...
Pure Basic 4.0
Benutzeravatar
TomS
Beiträge: 1508
Registriert: 23.12.2005 12:41
Wohnort: München

Beitrag von TomS »

Dann musst du es halt wiederherstellen. Deine Funktion zum Tastensenden sendet auch an das Fenster, das den Focus hat.
TomTom
Beiträge: 130
Registriert: 18.10.2006 18:47

Beitrag von TomTom »

SendMessage_(Window,#WM_KEYUP,Key,0)

window ist hier der hwnd des fremden fensters...

also ich habe ein fenster, das im minimiert ist.
jetzt sende ich eine taste an das fenster.

aber wie sende ich eine mausbewegung?
Pure Basic 4.0
Benutzeravatar
edel
Beiträge: 3667
Registriert: 28.07.2005 12:39
Computerausstattung: GameBoy
Kontaktdaten:

Beitrag von edel »

Benutzeravatar
gnasen
Beiträge: 578
Registriert: 01.08.2007 14:28
Computerausstattung: PB 4.60

Beitrag von gnasen »

The WM_MOUSEMOVE message is posted to a window when the cursor moves. If the mouse is not captured, the message is posted to the window that contains the cursor. Otherwise, the message is posted to the window that has captured the mouse.

Ich denke mal, dass das nicht ist, was du suchst. Geht ja scheinbar nur an das Aktive Fenster oder an ein Fenster was die Maus ge'captured' hat. An beliebige Fenster fällt damit flach.
Benutzeravatar
Danilo
-= Anfänger =-
Beiträge: 2284
Registriert: 29.08.2004 03:07

Beitrag von Danilo »

gnasen hat geschrieben:Geht ja scheinbar nur an das Aktive Fenster oder an ein Fenster was die Maus ge'captured' hat. An beliebige Fenster fällt damit flach.
Nein. Dein Zitat ist das, was das System macht. Selbst kannst Du natürlich
an jedes Fenster senden was Dir beliebt.
cya,
...Danilo
"Ein Genie besteht zu 10% aus Inspiration und zu 90% aus Transpiration" - Max Planck
TomTom
Beiträge: 130
Registriert: 18.10.2006 18:47

Beitrag von TomTom »

ich habe es so getestet:

SendMessage_(Window,#WM_MOUSEMOVE,200,100)

aber da tut sich nichts...
ich habe den Parameter Window überprüft... daran liegt es nicht :(

leider gibt SendMessage_() keinen rückgabewert...


was mache ich falsch?

vielen dank!
Pure Basic 4.0
Benutzeravatar
edel
Beiträge: 3667
Registriert: 28.07.2005 12:39
Computerausstattung: GameBoy
Kontaktdaten:

Beitrag von edel »

MSDN schreibt dazu folgendes :

Code: Alles auswählen

wParam
Indicates whether various virtual keys are down. This parameter can be one or more of the following values. 
MK_CONTROL
The CTRL key is down.
MK_LBUTTON
The left mouse button is down.
MK_MBUTTON
The middle mouse button is down.
MK_RBUTTON
The right mouse button is down.
MK_SHIFT
The SHIFT key is down.
MK_XBUTTON1
Windows 2000/XP: The first X button is down.
MK_XBUTTON2
Windows 2000/XP: The second X button is down.




lParam
The low-order word specifies the x-coordinate of the cursor. The coordinate is relative to the upper-left corner of the client area. 

The high-order word specifies the y-coordinate of the cursor. The coordinate is relative to the upper-left corner of the client area. 
Antworten