ورود

View Full Version : سوال: هندل های یک پنجره



space_
دوشنبه 16 تیر 1393, 01:08 صبح
یه سوال داشتن من دارم یه برنامه با کمک هندل واسه یاهو می نویسم ولی به مشکل برخوردم

به عنوان مثال توی صفحه لاگین یاهو دو تا تکست باکس هست که اولی یوزنیم میشه و دومی پسورد من با استفاده از findWindow و findwindowex دارم یوزر نیم رو با هندل وارد می کنم ولی چون جفتشون تکس باکسن و class جفتشون رو یکی داره نشون میده پسورد به جای اینکه توی تکست باکس پسورد وارد بشه بازم توی همون تکست باکس یوزرنیم وارد میشه . کسی می تونه کمکم کنه که چه جوری هندل تکس باکس دومی رو بدست بیارم یا اینکه کل هندل های اون پنجره رو پیدا کنم؟ . مرسی

فقط ممنون میشم در حد مبتدی توضیح بدید

arash_ebrahimi_nk
دوشنبه 16 تیر 1393, 08:59 صبح
findwindow فقط از کلاس و متن برای پیدا کردن پنجره استفاده میکنه که در این مورد خاص بدرد شما نمیخوره. بعد اینکه هندل پنجره یاهو رو گرفتید بهتره از کد Enumchildwindows استفاده کنید که تک تک کنترل های اون رو مورد بررسی قرار میده به این ترتیب شما میتونید گزینه های دیگه ای نظیر z-order و Control id رو چک کنید که در پیدا کردن این کنترل های مشابه بهتون کمک میکنه.

space_
دوشنبه 16 تیر 1393, 11:34 صبح
آره دقیقا به
Enumchildwindows مربوط میشه ولی من هرکاری می کنم نمی تونم به نتیجه برسم اگه سورسی باشه یا مثالی بزنید که بهتر متوجه بشم که باید چیکار کنم ممنون میشم .

arash_ebrahimi_nk
پنج شنبه 19 تیر 1393, 09:56 صبح
سورس که توی اینترنت خیلی زیاده چطوری پیدا نمیکنی؟ توی گوگل اسم تابع و کلمه delphi رو بنویس هزار تا مثال پیدا میشه.

Mask
پنج شنبه 19 تیر 1393, 20:30 عصر
بهتره از spy++8 (http://process-info.org/spyxx-exe) استفاده کنید و توافط رو به صورت کامل ببینید.

Felony
دوشنبه 30 تیر 1393, 04:04 صبح
اگر هندل یک کنترل رو دارید و میخواین هندل کنترل بعدی رو به دست بیارین ، تابع GetNextWindow هندل یک کنترل رو میگیره و هندل کنترل قبلی/بعدی رو بهتون میده :

var
CurrHandle, NextHandle: THandle;
begin
NextHandle:= GetNextWindow(CurrHandle, GW_HWNDNEXT);
end;