ich will in einem "fremden" Programm auf eine gewisse Schaltfläche klicken lassen.
Das Handle vom jeweiligen Fenster habe ich mir hiermit besorgt:
Code: Alles auswählen
Structure Point64
StructureUnion
p.point
q.q
EndStructureUnion
EndStructure
Procedure Thread(z)
hndl = 0
cursor.Point64
Repeat
GetCursorPos_(cursor.Point64)
hndl = WindowFromPoint_( cursor\q )
SetGadgetText(1,"Handle-Nummer unter Maus: "+Str(hndl))
Delay(100)
ForEver
EndProcedure
If OpenWindow(0,0,0,250,50,"Window",#PB_Window_SystemMenu|#PB_Window_ScreenCentered)
StickyWindow(0,1)
TextGadget(1,10,10,220,20,"",0)
CreateThread(@Thread(),0)
Repeat
EventID=WaitWindowEvent()
If EventID = #PB_Event_CloseWindow
End
EndIf
ForEver
EndIf
Code: Alles auswählen
Enumeration
#Start
EndEnumeration
OpenWindow(0,0,0,175,155,"Klicker",#PB_Window_SystemMenu|#PB_Window_ScreenCentered)
StickyWindow(0,1)
ButtonGadget(#Start,10,10,155,30,"Start")
Repeat
EventID=WaitWindowEvent(50)
If EventID=#PB_Event_Gadget And EventGadget()=#Start
x=570
y=200
SetCursorPos_(x,y)
Delay(250)
SetForegroundWindow_(786536)
Delay(250)
mouse_event_(#MOUSEEVENTF_LEFTDOWN,x,y,0,0)
mouse_event_(#MOUSEEVENTF_LEFTUP,x,y,0,0)
EndIf
Until EventID=#PB_Event_CloseWindow
End
Eigentlich müsste doch SetForegroundWindow_() VOR dem Klick gesetzt werden oder? Hat aber dann gar keinen Effekt.
Das Zielprogramm hat übrigens nicht wie das Browserfenster nur ein Handle, sondern mehrere für Titel, Statusleiste usw. Einfach mal mit dem Handlefinder oben in der PB-IDE rumfahren...
Hat jemand eine Idee woran das liegen könnte?
Dankeschöööö!