Zeichenkette ausgeben

Hallo, ich möchte gerne ein Programm schreiben welches vorgegebenen Text, wenn man in eine Textbox klickt, wieder ausgibt.

zb. Ich lege einen string an mit: ‚Hallo Welt‘, wenn ich jetzt auf den Button „Start“ drücke und danach direkt in die Adressezeile meines Browsers klicke, soll Delphi nun „Hallo Welt“ schreiben und zwar in vorgegebener geschwindigkeit (Text soll Buchstabe für Buchstabe kommen). Dazu wollte ich dann ein Menü einrichten wo man dann zwischen verschiedenen Texten wählen kann.

Ich habe stundenlang gegoogelt aber leider nichts nützliches gefunden.

Ich danke schonmal für die Hilfe

Hallo Krepes,

wenn ich deine Frage richtig verstanden habe, soll der Text aus deinem Delphi-Programm heraus als Eingabe in eine anderes Programm übertragen werden und dies dann am besten nicht am Stück, sondern Buchstabe für Buchstabe. Dein Delphi-Programm soll sozusagen einen Benutzer simulieren.

Wenn das gemeint ist, lass es mich bitte wissen, damit ich dir eine passende Lösung ausarbeiten kann. Machbar ist das durchaus. Allerdings lassen sich nicht alle Programme auf diese Art „fernsteuern“. Aber einen Versuch bei Browsern ist es wert.

Also schreibe bitte kurz, ob ich die Aufgabe korrekt verstanden habe.

Gruß
Robert

Hi!

Soll dein Delphi-Programm deinen Browser fernsteuern? Oder wie stellst Du Dir das Klicken in die Adressezeile deines Browsers vor? Welchen Browser nutzt Du?

VG Dirk

@ Herr Sievers

Also das Programm soll nicht meinen Browser „steuern“. Ich habe die Adressezeile nur als Beispiel genommen, es könnte genauso gut ein Suchfeld sein oder einfach nur Word, Editor…halt einfach da wo man etwas reinschreiben kann. Das „klicken“ soll das Programm starten, d.h sobald ich z.B in Word klicke soll das Programm den vorgegebenen Text anfangen zu schreiben.

@Herr Kuhlmann

Ja so meine ich das. Mit „Buchstabe für Buchstabe“ ist die Geschwindigkeit gemeint d.h der Text soll langsam eingegeben werden. Das Einzige was mir als Lösung dazu einfällt ist zwischen jedem Buchstaben eine Pause zu machen, ich hoffe aber es gibt eine elegantere Lösung.

Vielen Dank

Hallo Krepes,

ich kann dir gerade aus Zeitgründen leider nur einen Lösungsansatz schildern ohne Code-Beispiele…

Es gibt die Möglichkeit in den globalen Ein-/Ausgabepuffer einzugreifen.
Dort kannst du systemweite Mausklicks abfangen und darauf in deinem Programm reagieren.
Dazu gibt es die Möglichkeit einen Tastendruck zu simulieren in dem man das Zeichen in den Tastaturpuffer schreibt. Dies funktioniert ohne das dein Programm aktiv im Vordergrund ist.

Wenn du dich über die systemweite Behandlung von Ein-/Ausgaben informierst wirst du zu einem Lösungsweg finden.

Viel Erfolg,
Andreas

p.s. sollte das nicht klappen dann antworte bitte nochmals auf den Beitrag!

Hallo, ich weiss nun wie ich den Text ausgeben kann, allerdings nur in notepad von Windows. ( wnd := FindWindow(‚notepad‘, nil):wink: wie kann ich denn ein Eingabefeld in Mozilla Firefox auswählen z.B in Google´s Suchfeld ?

Hi,

also ich würde nicht über das Window-Handle gehen… Gerade wenn es um externe Software geht kannst du nie wissen was damit intern bei dem Hersteller gemacht wird…

Bist du mit dem Tastaturpuffer nicht weiter gekommen?
http://delphi.about.com/od/adptips2004/a/bltip0604_4…

Hier kannst du im Hintergrund über ne Schleife nach und nach die gewünschten Tasten „drücken“.
Denke das ist das, was du anfänglich beschreibst.

Viel Erfolg und bei Rückfragen bitte melden!

Gruß,
Andreas

Hallo, ich weiss nun wie ich den Text ausgeben kann,
allerdings nur in notepad von Windows. ( wnd :=
FindWindow(‚notepad‘, nil):wink: wie kann ich denn ein Eingabefeld
in Mozilla Firefox auswählen z.B in Google´s Suchfeld ?