API...

5 отговора 32 прегледа
#1

API...


Abe kajete kak moga da izprastam i polu4avam text ot dadena kontrola? Naprimer notepad ili mIRC... da se polu4ava teksta ot memoto na notepada ili mIRC v moe memo? Uspiah da vzema handleto na roditelskia prozorez no ne moga da se "pricelia" to4no v kontrola koito iskam! Pomognete!

Отговор
в отговор на int19 #2

Re: API...

Shto reshi che mIRC polzwa memo??? pa i podobni tehniki ka krajno nenadejdni...
pyrwom Spy++ ili WinSight nameri ko tochno ti trqbwa i si probwaj dali izobshto ima smisyl da se napywash i ako ima smisyl weche moje da se zachete po-seriozno helpa

Отговор
в отговор на SDR #3

Re: API...

Ako imam greshka za mIRC tova ne e tolkova vajno! Iskah da popitam prosto za principa. Vijdal sum gi tia nesta i helpa sym se mu4il da razbera no vse pak opiram do vashata pomost. Priemam susto i kritiki za vuprosa si no vse pak se nadiavam da nameria adekvaten otgovor

Отговор
в отговор на int19 #4

Re: API...

Виж сега ти питаш тук за Automation. Това требва да вземеш да го по прочетеш.

Отговор
в отговор на int19 #5

Re: API...

Ami ima nachin no trjabva da minesh prez jerarhijata za da namerish handler-a na kontrolata kojato ti trjabva. Vij tova:

function EnumChildProc(lhWnd:THandle; lParam:Cardinal):Boolean;export;StdCall;
var
sClassName:String;
lRet:integer;
begin
SetLength(sClassName, 260);
GetClassName(lhWnd, PChar(sClassName), 250);
sClassName := PChar(sClassName);
sClassName := UpperCase(sClassName);
if sClassName = 'EDIT' then
begin
lRet := SendMessage(lhWnd, WM_GETTEXTLENGTH, 0, 0);
if lRet = 0 then
begin
Result := True;
Exit;
end
else
begin
SendMessage(lhWnd, WM_GETTEXT, lRet + 1, LongInt(sWndText));
Result := False
end;
end
else
Result := True;
end;

function GetFirstVisibleEditText(lhWnd:hWnd):String;
var
lRet:Integer;
sAppTitle:String;
begin
SetLength(sWndText, 260);
SetLength(sAppTitle, 260);
lRet := SendMessage(lhWnd, WM_GETTEXTLENGTH, 0, 0);
SendMessage(lhWnd, WM_GETTEXT, lRet + 1, LongInt(sAppTitle));
sAppTitle := UpperCase(sAppTitle);
if (Pos('INTERNET EXPLORER',sAppTitle)<>0) OR (Pos('NETSCAPE',sAppTitle)<>0) then
begin
EnumChildWindows(lhWnd, @EnumChildProc,0);
GetFirstVisibleEditText := sWndText;
end
else
GetFirstVisibleEditText := 'none';
end;


idejata mu e neshto podobno.

Отговор
в отговор на AquilaX #6

Re: API...


Mngo blagodaria, ste go probvam!

Отговор