Entwickler-Ecke
Windows API - In ein Textfeld eines andern Programms schreiben?
cs-schmarotzer - Sa 27.12.03 16:46
Titel: In ein Textfeld eines andern Programms schreiben?
Ich habe einen String (nicht den Tanga), den ich in das Textfeld des Jump To File-Dialogs von Winamp 2.x eintragen will. Den Dialog kann ich oeffnen, aber ich schaffe es nicht, mit FindWindowEx diesen String ins Textfeld zu schreiben.
Hat da jemand Ahnung von?
Danke && hf :)
starfish
DeCodeGuru - Sa 27.12.03 17:36
| Zitat: |
| mit FindWindowEx diesen String ins Textfeld zu schreiben. |
Du willst mit FindWindowEx in nen Textfeld schreiben? Das kann auch nicht funktionieren. Mit FindWindowEx kannst du nur das Fenster finden, in das du schreiben willst.
Wie man das macht, steht hier im Forum. Such mal nach WM_SETTEXT. Des is ne Windows-Botschaft. Dazu kannst du auch mal in der PSDK bzw. MSDN nachschlagen. :)
cs-schmarotzer - Sa 27.12.03 22:49
OK, jetzt habe ich 4 Stunden lang vergeblich versucht, etwas zu reissen, aber es funzt nicht. Auch deshalb, weil ich die genannten Proggs (x-Spy etc) nirgendwo finde (x-spy.net ist unavailable <juhuu) und absolut nicht weiterkomme. Ich habe das Hande von Winamp, allerdings benoetige ich das Handle des JumpToFile-Fensters, das ich bereits mit Delphi oeffne. Auf diesem Fenster moechte ich in das obere Textfeld einen String schreiben, und ich hab keine Ahnung wie, denn ich kann nicht herausfinden, wie ich direkt auf dieses Textfeld zugreife, denn dann kann ich auch erst WM_SETTEXT bzw. SendMessage(...) verwenden. Mein Code sieht bis jetzt so aus:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12:
| procedure JumpToFile(sName:string); var hWinAmp,hDialog:THandle; begin hWinamp := FindWindow('Winamp v1.x', nil); Form1.WAexecute(11); wait(300); hDialog := GetWindow(hWinAmp,GW_HWNDPREV); SetFocus(hDialog); SendKeys(FindWindowEx(hDialog,0,'Edit',''),sName); wait(100); SendKeys(FindWindowEx(hDialog,0,'Edit',''),#13);end; |
bei dem obigen "Edit" im FindWindowEx-Befehl habe ich das Problem, ausserdem bin ich mir bei dem GetWindow-Befehl zum Finden des neuen Fensters auch nicht sicher.
Das stresst gewaltigt!
Hilfe!
toms - So 28.12.03 10:55
| Zitat: |
| hDialog := GetWindow(hWinAmp,GW_HWNDPREV); //sollte mir das JumpToFile-Fenster geben (nicht sicher) |
Warum bist du dir da nicht sicher?
Überprüf doch mal, ob hDialog ungleich null ist.
cs-schmarotzer - So 28.12.03 14:59
Nein, es ist nicht null. Allerdings weiss ich auch nicht, ob es denn wirklich das Fenster ist, nach dem ich suche, denn das kann ich aus meiner Sicht nicht kontrollieren!
Narf...
Trotzdem danke!
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!