![]() |
Externes Eingabefeld füllen???
Hallo!
Ist es möglich eine AKTIVE Eingabezeile eines anderen Programmes zu füllen? Das heißt ich klicke auf eine Eingabezeile einer anderen Anwendung und kann z.B. durch drücken eine Hotkeys einen bestimmten Text einfügen! Das mit dem Hotkey ist ja kein Thema, aber wie bekomm ich das hin das mein Prog weißt wo der Text eingefügt werden soll??? Danke! |
Re: Externes Eingabefeld füllen???
Hi.
Unter Umständen könnte man Tastenanschläge simulieren (frag jetzt bitte nicht, wie... :wink: ). |
Re: Externes Eingabefeld füllen???
Eventuell könnte
![]() |
Re: Externes Eingabefeld füllen???
|
Re: Externes Eingabefeld füllen???
Zitat:
|
Re: Externes Eingabefeld füllen???
So kompliziert ist es doch gar nicht. Es geht einmal mit der Windowsfunktion "SetWindowText"
Delphi-Quellcode:
oder eben mit wm_settext
SetWindowText(handle, 'New Title');
Delphi-Quellcode:
var NewCaption: String;
begin NewCaption := 'abc'; SendMessage(DestWindowHandle, WM_SETTEXT, 0, Integer(NewCaption)); |
Re: Externes Eingabefeld füllen???
Moin Sir Thornberry,
Zitat:
@Lesco: Zitat:
Ich bitte das nicht misszuverstehen. Das soll nicht heissen, dass ich der Ansicht bin, dass es nicht geht, ich bezweifele nur, dass es weniger Aufwand macht. |
Re: Externes Eingabefeld füllen???
Gruß. Ich denke ihr wisst ne so richtig was ich mein. jetzt erklär ich mal was ich machen will!
ich will eine kleines tool programmieren, mit dem ich seriennummern in der Zwischenablage zerflücken kann und einzeln in die entsprechende eingabefelder einer Seriennummernabfrage einfügen kann. bsp. ich habe die seriennummer aaaa-bbbb-cccc-dddd-eeee, wir nehmen mal an es ist eine seriennummer von office 2003. der sackgang ist immer der, das ich aaaa kopieren muss und dann per hand in das erste eingabefeld der serialabfrage einfügen muss. bbbb dann in das zweite und so weiter...und das geht mir auf den sack. ich will also die komplette seriennummer markieren und in die Zwischenablage kopieren. Mein Programm was im hintergrund läuft zerflückt die seriennummer an hand von -. Klick ich jetzt auf das erste eingabefeld der abfrage, will ich z.b. mit STRG+ALT+V (eigener Hotkey) mein programm mitteilen dass ich die seriennummer einfügen will. also nimmt er aaaa, und fügt sie in das erste eingabefeld ein (wo ich mit meiner maus drauf geklickt habe). dann wird aaaa- entfernt. nun klicke ich auf das zweiten eingabefeld und drücke wieder STRG+ALT+V und er schreibt bbbb in das zweiten eingabefeld. und so weiter! Das Problem ist hier bei, wenn ich in das erste Eingabefeld KLICKE, und meinen hotkey drücke soll dort auch ein entsprechender Text eingefügt werden. Also, jemand ne Idee wie ich das hinbekomme??? [edit=Christian Seehase]Doppelpost gelöscht. Mfg, Christian Seehase[/edit] |
Re: Externes Eingabefeld füllen???
Moin TriphunEM,
kann es sein, dass Du Dir nichts von dem bisher geposteten mal angesehen hast? Falls doch: Wo hast Du jetzt noch Probleme? |
Re: Externes Eingabefeld füllen???
hi. habs versucht mit :
NewCaption := 'abc'; SendMessage(FocusHWnd, WM_Settext,0,Integer(Pchar(NewCaption))); aber da passiert nix. also mein programm führt mit einen globalen hotkey die funktion aus, aber eingefügt wird garnix... |
Re: Externes Eingabefeld füllen???
also bei mir funzt es. habs einfach mal in ein OnClick des Buttons gemacht
Delphi-Quellcode:
und resultat ist das nach dem Klick jedesmal der Button die Caption des Edit1.Text hat (weil ja der Button den Focus beim klick bekommen hat). Ich denk mal du machst irgendwo anders was falsch denn den geposteten source hab ich vorher beim explorer ausprobiert und somit von diesem die caption geändert..
procedure TForm1.Button1Click(Sender: TObject);
begin SendMessage(GetFocus, WM_Settext,0,Integer(Pchar(Edit1.Text))); end; |
Re: Externes Eingabefeld füllen???
Moin TriphunEM,
das Handle, dass Du bei SendMessage angibst, muss das des Eingabefeldes sein. |
Re: Externes Eingabefeld füllen???
ich hab das gefühl ihr versteht mich nicht ganz.
ich will nicht ein edit in MEINEM Programm füllen, sondern ein eingabfeld aus irgend einem anderen programm. ob es die commandozeile vom totalcommander ist oder start->ausführen->öffnen. [edit=Christian Seehase]Dreifach ( :!: ) Post gelöscht. Mfg, Christian Seehase[/edit] |
Re: Externes Eingabefeld füllen???
ich hab das gefühl das du nicht liest was wir schreiben. ich hab ja auch geschrieben:
Zitat:
|
Re: Externes Eingabefeld füllen???
äm bei mir funzt es ne weil ich ja nie weiß in welchen fenster bzw. programm der benutzer den text einfügen will.
wenn ich text in notepad einfügen will dann muss ich ja zuerst
Delphi-Quellcode:
aber ich weiss ja nen obs notepad ist oder ne???
wnd := FindWindow('notepad', nil);
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:12 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz