Autor Beitrag
neuling2010
Hält's aus hier
Beiträge: 4



BeitragVerfasst: Sa 14.08.10 17:07 
Hallo Zusammen,

bin gerade ratlos...

Ich will ein Tool schreiben, was einen Text im Memofeld in die Zwischenablage kopiert und sich automatisch den bereits geöffneten Editor (Notepad) schnappt und den Text aus der Zwischenablage einfügt.

clipboard.astext := memo1.text;

jetzt müsste die Abfrage kommen: Wo ist das Notepad bzw. die Cursorposition und dann automatisch Text einfügen

Ich habe bereits viele Threads gelesen, aber das wirklich nie verstanden, weil einige sachen aus dem zusammenhang gerissen waren oder auf expertenebene kommuniziert wurde.
Könnt ihr das einem echten Anfänger mal erklären, wie das ganze funktioniert?

THX
Stundenplan
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 128
Erhaltene Danke: 32

Win 7
Delphi 7 Pers., C# (VS 2010 Express)
BeitragVerfasst: Sa 14.08.10 17:36 
Hallo!

Da müsstest du mit z.B. X-Spy an das Handle des Memos in Notepad ein WM_PASTE senden, für Notepad würde das so aussehen:

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
var
  wnd: HWND;
begin
  wnd :=  FindWindow('Notepad'nil);  //Notepad-Handle ermitteln
  wnd :=  FindWindowEx(wnd, 0'Edit'nil);  //Daraus Handle des Eingabefeldes ermitteln

  if wnd <> 0 then  //Wenn er was gefunden hat
  begin
    SendMessage(wnd, wm_paste, 00);  //Die Message WM_PASTE senden
  end;
end;


Viele Grüße,
Stundenplan.
neuling2010 Threadstarter
Hält's aus hier
Beiträge: 4



BeitragVerfasst: Sa 14.08.10 18:27 
Die Handle's hab ich soweit,hoffe sind die richtigen,delphi meckert zumindest nicht,
das mit wm_paste habe ich noch nicht ganz verstanden,kannst du mir das genauer erlären?
elundril
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 3747
Erhaltene Danke: 123

Windows Vista, Ubuntu
Delphi 7 PE "Codename: Aurora", Eclipse Ganymede
BeitragVerfasst: Sa 14.08.10 18:34 
WM_PASTE ist einfach nur eine Nachricht die ans Notepad-Fenster geschickt wird. Wenn diese das empfängt, weiß Notepad das es einen Objekt gibt in der Zwischenablage das es einfügen soll. Und dann führt Notepad eine Methode aus um das Objekt zu holen und es einzufügen, sofern es das kann.

lg elundril

_________________
This Signature-Space is intentionally left blank.
Bei Beschwerden, bitte den Beschwerdebutton (gekennzeichnet mit PN) verwenden.
neuling2010 Threadstarter
Hält's aus hier
Beiträge: 4



BeitragVerfasst: Sa 14.08.10 18:57 
ok verstehe,stelle gerade fest das meine handle's nicht funzen,bekomme so viele infos angezeigt,das ich kaum erkennen kann welches handle beim notepad was macht :-( was kann ich da machen?

---Moderiert von user profile iconNarses: Beiträge zusammengefasst---

ok jetzt klappt es mit dem notepad, jetzt wird es wohl sehr schwer,ich will nun den handle von livezilla bzw. das chatfenster von livezilla,wo ich den text dann enfügen kann,leider ist es nicht so einfach zu erkennen wie beim notepad
hat jemand interesse die nadel im heuhaufen mit zu suchen ;-)

thx
elundril
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 3747
Erhaltene Danke: 123

Windows Vista, Ubuntu
Delphi 7 PE "Codename: Aurora", Eclipse Ganymede
BeitragVerfasst: Sa 14.08.10 20:34 
mit dem X-Spy von user profile iconMotzi sollte es eigentlich relativ einfach gehen.

lg elundril

_________________
This Signature-Space is intentionally left blank.
Bei Beschwerden, bitte den Beschwerdebutton (gekennzeichnet mit PN) verwenden.
neuling2010 Threadstarter
Hält's aus hier
Beiträge: 4



BeitragVerfasst: Sa 14.08.10 20:35 
x-spy nutze ich ja schon ;-)

aber das ist trotzdem nicht einfach

---Moderiert von user profile iconNarses: Beiträge zusammengefasst---

hm ich habe alle handle's von livezilla durch,nix gefunden, hab ich was falsch gemacht? findet ihr den handle für das chat-fenster,also da wo der user sein text eingeben soll?

hier mal der code,wie x-spy da sieht,aber wenn ich den nutze passiert nix

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
  wnd :=  FindWindow('WindowsForms10.Window.8.app.0.2004eee''Live Chat');
  wnd :=  FindWindowEx(wnd, 0'WindowsForms10.Window.8.app.0.2004eee''toolStripContainer1');
  wnd :=  FindWindowEx(wnd, 0'WindowsForms10.Window.8.app.0.2004eee'nil);
  wnd :=  FindWindowEx(wnd, 0'WindowsForms10.Window.8.app.0.2004eee'nil);
  wnd :=  FindWindowEx(wnd, 0'WindowsForms10.Window.8.app.0.2004eee'nil);
  wnd :=  FindWindowEx(wnd, 0'WindowsForms10.Window.8.app.0.2004eee'nil);
  wnd :=  FindWindowEx(wnd, 0'WindowsForms10.Window.8.app.0.2004eee'nil);
  wnd :=  FindWindowEx(wnd, 0'WindowsForms10.Window.8.app.0.2004eee'nil);
  wnd :=  FindWindowEx(wnd, 0'WindowsForms10.Window.8.app.0.2004eee'nil);
  wnd :=  FindWindowEx(wnd, 0'WindowsForms10.Window.8.app.0.2004eee'nil);
  wnd :=  FindWindowEx(wnd, 0'WindowsForms10.Window.8.app.0.2004eee'nil);
  wnd :=  FindWindowEx(wnd, 0'WindowsForms10.Window.8.app.0.2004eee'nil);
  wnd :=  FindWindowEx(wnd, 0'WindowsForms10.Window.8.app.0.2004eee'nil);
  wnd :=  FindWindowEx(wnd, 0'WindowsForms10.Window.8.app.0.2004eee'nil);
  wnd :=  FindWindowEx(wnd, 0'WindowsForms10.Window.8.app.0.2004eee'nil);
  wnd :=  FindWindowEx(wnd, 0'WindowsForms10.Window.8.app.0.2004eee''toolStripContainer1');
  wnd :=  FindWindowEx(wnd, 0'WindowsForms10.Window.8.app.0.2004eee'nil);
  wnd :=  FindWindowEx(wnd, 0'WindowsForms10.Window.8.app.0.2004eee'nil);
  wnd :=  FindWindowEx(wnd, 0'Shell Embedding'nil);
  wnd :=  FindWindowEx(wnd, 0'Shell DocObject View'nil);
  wnd :=  FindWindowEx(wnd, 0'Internet Explorer_Server'nil);

Moderiert von user profile iconNarses: Delphi-Tags hinzugefügt