Einzelnen Beitrag anzeigen

dominikkv

Registriert seit: 30. Sep 2006
Ort: Gundelfingen
1.109 Beiträge
 
Delphi 2007 Professional
 
#3

Re: Label einer anderen Anwendung auslesen

  Alt 1. Mär 2007, 13:20
ok
mit WinSpy kannst du dir einen source-code für delphi zusammenstellen lassen der dir das Handle von deinem Label zurückgibt.
dazu einfach winSpy starten, "Fenster auswählen" auswählen und auf dein programm klicken wo das label drinne ist.
jetzt werden dir alle komponenten in deinem programm gezeigt...dort einfach das label aussuchen und oben auf "Code" klicken.
am schluss hast du dann in der variablen wnd das handle vom label.
und dann holst du dir einfach den text:
Delphi-Quellcode:
    
function FindWindowEx2(hParent: HWND; ChildClassName: string; ChildNr: Word): HWND;
var
  i: Word;
  hChild: HWND;
begin
  hChild := 0;
  Result := 0;
  ChildNr := ChildNr - 1;
  for i := 0 to ChildNr do
  begin
    hChild := FindWindowEx(hParent, hChild, PChar(ChildClassName), nil);
    if hChild = 0 then
      Exit;
    Result := hChild;
  end;
end;

function GetText: String;
var
  wnd: HWND;
  len: Integer;
  s: String;
begin
  wnd := FindWindow('bla','bla'); // anpassen!
  wnd := FindWindowEx2(wnd,'TLabel', 3); // anpassen!
  //...
  if wnd <> 0 then
  begin
    len := SendMessage(wnd, WM_GETTEXTLENGTH, 0, 0);
    SetLength(s, len);
    SendMessage(wnd, WM_GETTEXT, len + 1, Integer(@s[1]));
  end;
  result := s;
end.
Dominik
  Mit Zitat antworten Zitat