![]() |
string in ein beliebiges fenster schreiben
hi,
ich habe zwar schon gesucht aber noch nichts gefunden was ich brauche :( folgende situation: ich habe einen string, also beispiel 'hallo welt' diesen will ich z.b. wenn das editor fenstern aktiv ist darein kopieren lassen, wie sieht eine prozedur für soetwas aus ? thx für eure hilfe |
Re: string in ein beliebiges fenster schreiben
Hol dir das Handle vom Control, in das du den Text schreiben willst, und schicke ihn per SendMessage dorthin ;-)
|
Re: string in ein beliebiges fenster schreiben
Das ist nicht trivial. Wir haben darüber schon einen langen Thread. Such mal nach Beiträgen von FriFra. Hab den Thread gefunden:
![]() |
Re: string in ein beliebiges fenster schreiben
ich will ja nix ersetzten ;)
will ja komplett neuschreiben lassen ;) lol |
Re: string in ein beliebiges fenster schreiben
manchmal frage ich mich echt ob ich dumm bin??!? ;) lool
ich habs jetzt irgendwie ganz simpel gepackt, THX |
Re: string in ein beliebiges fenster schreiben
Zitat:
|
Re: string in ein beliebiges fenster schreiben
obwohl, wo isn hier der kleine fehler? ;)
Delphi-Quellcode:
var
FocusHWnd: HWND; WndText: String; begin wndtext:='hallo'; FocusHWnd := GetFocus; SendMessage(FocusHWnd, WM_SETTEXT, Length(WndText), LPARAM(PChar(WndText))); |
Re: string in ein beliebiges fenster schreiben
Was für ein Fehler? Gibt es eine Fehlermeldung oder wie? Leider sind die Glaskugeln der ganzen DP bei einem stromausfall kaputt gegangen ;)
|
Re: string in ein beliebiges fenster schreiben
nee, aber es funktioniert nicht ;)
er schreibt keinen text, ich mache das folgendermassen, ich lasse delphi in z.b. notepad klicken, damit er da eigentlich schreiben könnte, aber dann macht er nichts ... es passiert einfach nichts :( |
Re: string in ein beliebiges fenster schreiben
Die Funktion GetFocus funktioniert nur im eigenen Prozess. Also wirst du nie mit GetFocus das Handle von Notepad bekommen.
|
Re: string in ein beliebiges fenster schreiben
Mit "WindowFromPoint" statt "GetFocus" und 'ner zeitverzögerten Auslösung davor (z.B. per sleep, um mit der Maus über das Control zu kommen) könnte es aber klappen.
|
Re: string in ein beliebiges fenster schreiben
Zitat:
![]() |
Re: string in ein beliebiges fenster schreiben
hmm, selbst damit will es einfach nicht ?!? :(
könnt ihr mir bitte noch nen bisl helfen ? ;) thx |
Re: string in ein beliebiges fenster schreiben
Zitat:
|
Re: string in ein beliebiges fenster schreiben
Delphi-Quellcode:
procedure tform1.test;
var FocusHWnd: HWND; AppHWnd: HWND; ThreadId: DWORD; WndText: String; begin FocusHWnd := GetFocus; if not IsWindow(FocusHWnd) then begin AppHWnd := GetForegroundWindow; if AppHWnd <> Self.Handle then begin ThreadId := GetWindowThreadProcessId(AppHWnd, nil); if ThreadId <> 0 then if AttachThreadInput(GetCurrentThreadId, ThreadId, True) then begin FocusHWnd := GetFocus; AttachThreadInput(GetCurrentThreadId, ThreadId, False); end; end; end; wndtext:='hallo'; //FocusHWnd := GetForegroundWindow; SendMessage(FocusHWnd, WM_SETTEXT, Length(WndText), LPARAM(PChar(WndText))); end; |
Re: string in ein beliebiges fenster schreiben
Zitat:
|
Re: string in ein beliebiges fenster schreiben
jo stimmt, aber mein code geht ja irgendwie trotzdem net :( ...
|
Re: string in ein beliebiges fenster schreiben
ich pushe grade ma :(
kann mir keiner helfen den fehler im code zu finden ? |
Re: string in ein beliebiges fenster schreiben
Prüf mal ob du überhaupt ein Handle hast !
Wenn du ein Handle hast dann hast du schon einen Großteil geschafft. |
Re: string in ein beliebiges fenster schreiben
hi, wie überprüft man denn ob man ein handel hat ?!?
|
Re: string in ein beliebiges fenster schreiben
Zitat:
// Du hast ein Handle |
Re: string in ein beliebiges fenster schreiben
ahh ok, habs grade ma getestet, ich habe also ein handel !!! was soll ich jetzt machen ?
|
Re: string in ein beliebiges fenster schreiben
Vielleicht das:
Entweder
Delphi-Quellcode:
oder
SendMessage(FocusHWnd, WM_SETTEXT, Length(WndText), LPARAM(PChar(WndText)));
![]() |
Re: string in ein beliebiges fenster schreiben
hab beides versucht, hier beide versuceh kombiniert:
Delphi-Quellcode:
aber bei keinem der beiden funktioniert es ...
...
wndtext:='hallo'; SendMessage(FocusHWnd, WM_SETTEXT, Length(WndText), LPARAM(PChar(WndText))); SetWindowText(FocusHWnd,PChar(WndText)); |
Re: string in ein beliebiges fenster schreiben
Hi,
bist du sicher, dass die Anwendung in dem moment wirklich die aktive ist? Ich würde den Code erstmal in einen Timer setzen, damit ich genug Zeit habe, die Anwendung zu wechseln.. Sonst ist ja deine Anwendung zwangsläufig die, die dein Code findet. cu |
Re: string in ein beliebiges fenster schreiben
ok habs auch damit getestet, aber nichts passiert :(
|
Re: string in ein beliebiges fenster schreiben
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:22 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