Hi
Ich hab mal eine Frage: Wie kann ich einen Button eines anderen Programmes aus meiner Anwendung herraus drücken ? Der Button hat keinen Shortcut (sonst wärs ja einfach :P). Die HWND des Fensters habe ich bereits, und kann auch Text schreiben, aber wie komme ich an den Handle des Buttons ? Irgendwie müsste das doch über den Text des Buttons gehen, oder ?
Gruss
Glow
Button eines fremden Programmes drücken
Code: Alles auswählen
Handle = FindWindow_(0,"HALLO")
Procedure MAKELONG(low,high)
ProcedureReturn low | (high<<16)
EndProcedure
Procedure ListChild(hwnd, Parameter)
WindowClass.s = Space(255)
GetClassName_(hwnd, WindowClass, 255)
If WindowClass = "Button"
Laenge = SendMessage_(hwnd,#WM_GETTEXTLENGTH,0,0) + 1
String.s = Space(Laenge)
SendMessage_(hwnd,#WM_GETTEXT,Laenge,@String)
If String = "Testbutton"
SendMessage_(GetParent_(hwnd),#WM_COMMAND, MAKELONG(GetDlgCtrlID_(hwnd),0) ,hwnd)
Else ;<--------------
ProcedureReturn #True ;<--------------
EndIf
ProcedureReturn #False
EndIf
ProcedureReturn #True
EndProcedure
EnumChildWindows_(Handle,@ListChild(), 0)
Code: Alles auswählen
OpenWindow(0,0,0,400,400,1|#WS_SYSMENU,"HALLO")
CreateGadgetList(WindowID())
ButtonGadget(666,10,10,100,20,"Testbutton")
Repeat
event = WaitWindowEvent()
If event = #PB_Event_Gadget
If EventGadgetID() = 666
MessageRequester("","Bingo")
EndIf
EndIf
Until event = #WM_CLOSE
Zuletzt geändert von edel am 26.12.2005 01:50, insgesamt 2-mal geändert.
Hi
zuerst mal Danke für den Tip. Allerdings funktioniert das nicht bei mir. Deine Test-Anwendung schon, aber nich wenn ich das auf andere Programme probiere. Scheint daran zu liegen, daß bei dir nur das erste Gadget ausgelesen wird, und wenn das nicht direkt das richtige ist, dann gehts nicht
Da müsste dann wohl eine Schleife rein, um zu überprüfen wie viele Gadgets es überhaupt auf dem anderen Programm gibt, und dann erst das spezifische ansteuern. Werd mal versuchen ob ich das hinbekomme 
zuerst mal Danke für den Tip. Allerdings funktioniert das nicht bei mir. Deine Test-Anwendung schon, aber nich wenn ich das auf andere Programme probiere. Scheint daran zu liegen, daß bei dir nur das erste Gadget ausgelesen wird, und wenn das nicht direkt das richtige ist, dann gehts nicht

