Registriert seit: 15. Apr 2004
69 Beiträge
|
Re: Editboxen in fremden Programmen suchen
3. Mai 2004, 09: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?
|
|
Zitat
|