hmmm, mit den beiden tuts oben schaff ich das einfach nicht :/
Also was ich genau will:
1. es handelt sich um einen "OpenDialog" eines externen programmes
2. Das Fenster mit Hilfe von FindWindow / FindWindowEX finden (Erfolgreich)
Wie ich da sicher bin?
Mit BringWindowToTop(Handle) kommt der OpenDialog in den vordergund
3. Das Editfeld (untere Combobox) des OpenDialogs finden und Text da eintragen (genz nicht)
Ich vermute ich finde ich das handle des EditFeldes / ComboBox nicht
Also meine frage:
Wie Finde ich das Handle des unteren Editfeldes (da wo ich den Pfad b.z für *.exe) eintragen müsste
Habe nun auch WinSpy, da bekomme ich ja das handle als ID zurück oder so, wenn ja wie komme ich dann dazu diese zu benutzen?
Ich fahre jtzt mal nach hause und teste das mal mit WinSpy, da ich selbst kein I-NET habe und gerade bei meinem bruder sitze
Danke schonmal für antworten!
// EDIT //
Hab mir das mal bei meinem Bruder angesehen
Das Feld das ich suche ist "ComboBoxEx32"
Das wiederrum unterteilt in "ComboBox" und "Edit"
In das "Edit" will ich folgedessen ja rein Sendmessagen
Das Problem ist, die ID des Edit Feldes, die ich bis jetzt mit X-Spy bekommen habe,
ändert sich bei jedem aufruf des "OpenDialog"
Wie bekomme ich das hin?
Nur eines ist immer Statisch:
ComboBoxEx32, ComboBox und Edit
BTW. Mein Code sieht derweil so aus:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14:
| procedure TForm1.Button1Click(Sender: TObject); var TestHandle, XHandle : HWND; i : Integer; s : string; begin TestHandle := FindWindow('OpenDialog', nil); if TestHandle <> 0 then begin XHandle := FindWindowEx(TestHandle, 0, 'Edit' ,nil); s := 'Dieser Text soll in das Editfeld des OpenDialoges'; SendMessage(XHandle, WM_SETTEXT, 0, Integer(PChar(s))); end; end; |