![]() |
Einfügen in Sourcecode vom RAD Studio ?
Hallo,
gibt es eine Möglichkeit, dass ich von einem anderen Programm einen Text an die aktuelle Stelle im Sourcecode einfügen kann, wenn Turbo Delphi oder RAD Studio mit einem aktuellen Projekt geöffnet ist. Ich habe schon mit WinSpy rumgespielt, komme aber leider nicht weiter. Wäre nett, wenn Ihr mir da helfen könntet. Mein jetziger Sourcecode :
Delphi-Quellcode:
Ich habe mir gedacht, fange ich einfach an und füge nur ein Wort hinzu. Leider funktioniert das weder mit WM_COPYDATA noch mit WM_SETTEXT. Ich vermute mal das liegt auch daran, dass zum Schluss nur ein TEditControl steht. Nur wie komme ich an das eigentlich Memo wo der Sourcecode drinsteht ?
function FindWindowEx2(hParent: HWND; ChildClassName: string; ChildNr: Word): HWND;
var i: Word; hChild: HWND; begin hChild := 0; Result := 0; Dec(ChildNr); for i := 0 to ChildNr do begin hChild := FindWindowEx(hParent, hChild, PChar(ChildClassName), nil); if hChild = 0 then Break; Result := hChild; end; end; procedure TForm5.Button1Click(Sender: TObject); var wndMain, wndChild: HWND; begin wndMain := FindWindow('TAppBuilder',nil); if wndMain <> 0 then begin wndChild := FindWindowEx(wndMain, 0, 'TEditorDockPanel', nil); wndChild := FindWindowEx(wndChild, 0, 'TEditWindow', nil); wndChild := FindWindowEx(wndChild, 0, 'TPanel', nil); wndChild := FindWindowEx(wndChild, 0, 'TPanel', nil); wndChild := FindWindowEx2(wndChild,'TPanel', 2); wndChild := FindWindowEx(wndChild, 0, 'TPanel', nil); wndChild := FindWindowEx(wndChild, 0, 'TPanel', nil); wndChild := FindWindowEx(wndChild, 0, 'TPanel', nil); wndChild := FindWindowEx(wndChild, 0, 'TEditControl', nil); if wndChild <> 0 then begin SendMessage(wndChild, WM_COPYDATA, 0, LongInt(PChar('Eingefügt'))); ShowMessage('Window Handle: ' + IntToStr(wndChild)); end; end; end; |
Re: Einfügen in Sourcecode vom RAD Studio ?
Für diese Problemstellung läge es irgendwie erstmal auf der Hand, die OpenTools API zu verwenden, oder spricht etwas gegen ein Delphi-Plugin? Wenn du nicht dein ganzes Programm als Plugin integrieren willst, könntest du z.B. auch eine Art "Communicator-Plugin" schreiben welches dir via OpenTools-API Zugriff auf den Editor gibt und an dein Programm weiterleitet!
|
Re: Einfügen in Sourcecode vom RAD Studio ?
Zitat:
Edit: Rechtschreibfehler korrigiert. Edit 2: Deshalb bin ich auf die Variante mit WinSpy gekommen. |
Re: Einfügen in Sourcecode vom RAD Studio ?
Tja, dann hast du das Problem, dass du zum ermitteln des Handles prinzipiell erstmal das Handle des Delphi-Main-Windows bräuchtest, welches man über den Fenstertitel ermittelt - nur den weißt du vermutlich nicht, da er sich ja je nach geöffnetem Projekt ständig ändert :stupid:
|
Re: Einfügen in Sourcecode vom RAD Studio ?
Naja, über den Classname ginge es ja auch.
|
Re: Einfügen in Sourcecode vom RAD Studio ?
Zitat:
|
Re: Einfügen in Sourcecode vom RAD Studio ?
Zitat:
|
Re: Einfügen in Sourcecode vom RAD Studio ?
Zitat:
Edit: Aber ich werde mal etwas abwarten, ob jemand anderes noch einen anderen Weg weiß, wie ich das realisieren kann. |
Re: Einfügen in Sourcecode vom RAD Studio ?
Zitat:
Zitat:
|
Re: Einfügen in Sourcecode vom RAD Studio ?
Zitat:
Ich meine es gibt auch schlauere Methoden, Daten aus einem Programm in den Sourcecode einfliesen zu lassen, als der Zugriff ins Editorfenster der IDE. Sowieso versagen unter Windows Vista & Windows 7 alle Programme, die auf diese unsaubere Art anderen Programmen etwas unterschieben wollen. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:47 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