Einzelnen Beitrag anzeigen

seddto1977

Registriert seit: 15. Apr 2004
69 Beiträge
 
#6

Re: Editboxen in fremden Programmen suchen

  Alt 3. Mai 2004, 08:52
Hab jetzt noch ein Problem. Das ist der Code den ich jetzt geschrieben hab:


Code:
function EnumWindowsProc(wHandle: HWND): Bool; stdcall;
var
  Title, ClassName: array[0..255] of char;
begin
  Result := True;
  GetWindowText(wHandle, Title, 255);
  GetClassName(wHandle, ClassName, 255);
  if IsWindow(wHandle) then
    EnumChildWindows(wHandle, @EnumProc, 0);

end;

function EnumProc(wnd: HWND): BOOL; stdcall;
var
  buffer, buf, Caption: array[0..255] of char;
  classe, email, email2: String;
begin
  Result := True;
  GetClassName(wnd, buf, SizeOf(buf) - 1);
  classe := uppercase(buf);
  If Pos('EDIT', classe) > 0 then
    begin
      SendMessage(Wnd, WM_GETTEXT, sizeof(buffer), Integer(@buffer));
      email := buffer;
      If (Pos('@', email)>0) and (Pos('.',email) > Pos('@',email)) then email_schreiben(email);
      If (Pos('@', email)>0) then
        begin
          email2 := email;
          Delete(email2,1,Pos('@',email2) - 1);
          If Pos('.',email2) > Pos('@',email2) then email_schreiben(email);
        end;

    end;


end;
Aber es werden keine Editboxen gefunden. Ich habe extra ein von mir geschriebenes Programm geöffnet in dem eine Editbox drin ist aber die wird nicht gefunden. Beim Einzelschritt durchlauf der Proceduren habe ich festgestellt, das offenbar auch nicht alle geöffneten Windows-fenster durchlaufen werden , sondern nur 1 oder 2 oder so. Es kommt nämlich immer die gleiche Anordnung von Elementen ("BUTTON", "SYSTRAY"....usw und wieder von vorne)

Weiss jemand wo der Fehler liegt?
  Mit Zitat antworten Zitat