Einzelnen Beitrag anzeigen

Mirco

Registriert seit: 7. Mai 2006
71 Beiträge
 
#7

Re: Memo in anderem Programm auslesen

  Alt 21. Jun 2006, 13:28
Hallo,
ich habe folgendes Beispiel gefunden.
Das klappt zum Beispiel ganz gut mit Notepad, aber nicht mit meinem Programm.
Das Memo was ich auslesen will liegt in dem Programm auf einer zweiten Form.
Kann es sein das es deswegen nicht funktioniert?


Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
  function EnumWindowsProc(Wnd: HWND; lParam: LPARAM): BOOL; stdcall;
  var
    ClassName: string;
    EditHWnd: HWND;
  begin
    SetLength(ClassName, 512);
    SetLength(ClassName, GetClassName(Wnd, PChar(ClassName), Length(ClassName)));
    if ClassName = 'Notepadthen
    begin
      EditHWnd := FindWindowEx(Wnd, 0, 'Edit', nil);
      if IsWindow(EditHWnd) then
        TList(lParam).Add(Pointer(EditHWnd));
    end;
  end;

var
  List: TList;
  I: Integer;
  S: string;
begin

  List := TList.Create;
  try
    EnumWindows(@EnumWindowsProc, LPARAM(List));
    for I := 0 to List.Count - 1 do
    begin
      SetLength(S, SendMessage(HWND(List.Items[I]), WM_GETTEXTLENGTH, 0, 0) + 1);
      if Length(S) > 1 then
      begin

        SetLength(S, SendMessage(HWND(List.Items[I]), WM_GETTEXT, Length(S), LPARAM(PChar(S))));
        Showmessage(S);
       // S := StringReplace(S, '111', 'Neuer Text', [rfReplaceAll]);
       // SendMessage(HWND(List.Items[I]), WM_SETTEXT, Length(S), LPARAM(PChar(S)));
      end;
    end;
  finally
    List.Free;
  end;
end;
Kann mir das bitte mal jemand erklären?
Viele Grüsse
Mirco
Mirco Hallenga
  Mit Zitat antworten Zitat