Einzelnen Beitrag anzeigen

POSHxxx
(Gast)

n/a Beiträge
 
#3

Re: Position einer Progressbar aus fremder Anwendung auslese

  Alt 23. Okt 2005, 18:57
Okay. Soweit so gut. Leider erhalte ich als Ausgabe eine sehr verwirrende Zeichenkombination.

Was mache ich falsch?

Code:
function TextUebergeben: string;
var
  hMemo, hHandleDesFensters : HWND;
  Text : pchar;
  len: Integer;
begin
  SetLastError(0);
  hHandleDesFensters := FindWindow(nil, 'Kopieren...');
  if hHandleDesfensters <> 0 then
  begin
    hMemo:= FindWindowEx(hHandleDesFensters, 0, 'msctls_progress32', nil);
    if hMemo <> 0 then
    begin
      len := SendMessage(hMemo, PBM_GETPOS, 0, 0);
      GetMem(Text, len+1);
      try
        try
          SendMessage(hMemo, PBM_GETPOS, len+1, Integer(@Text[0]));
          result := String(Text);
        except
          on E: EOutOfMemory do Messagebox(form1.Handle, PChar(E.Message), 'Fehler', MB_ICONSTOP);
        end;
      finally
        FreeMem(Text, len+1);
      end;
    end
    else
      Messagebox(form1.Handle, PChar(SysErrorMessage(GetLastError)), 'Fehler', MB_ICONSTOP);
  end
  else
    Messagebox(form1.Handle, PChar(SysErrorMessage(GetLastError)), 'Fehler', MB_ICONSTOP);
end;
  Mit Zitat antworten Zitat