PDA

View Full Version : به دست آوردن هندل دو شی با کلاس و عنوان یکسان



hojjatcroos
سه شنبه 13 اسفند 1387, 18:14 عصر
سلام دوستان می خواستم ببینم چه طور میشه هندل دو پنجره با کلاس و عنوان یکسان را به دست آورد اگه دقت کنید می بینید در Dialup Conection ها این طور هست کسی میتونه سورسی یا کدی ارائه بده با تشکر

DAMAVAND
سه شنبه 13 اسفند 1387, 19:56 عصر
سلام دوستان می خواستم ببینم چه طور میشه هندل دو پنجره با کلاس و عنوان یکسان را به دست آورد اگه دقت کنید می بینید در Dialup Conection ها این طور هست کسی میتونه سورسی یا کدی ارائه بده با تشکر




خوب اين در موارد بايد از تابع GetWindow هندل پنجره مورد نظر رو بدست بياريد.
بنجره هايي که اسم و کلاس يکسان دارند داراي هندل هاي مختلف ولي با سلسله مراتب مختلف هستن اول هندل يکي از پنجره ها رو بدست بياريد بعد با کمک تابع GetWindow هندل پنجره بعد از اون رو بدست بياريد.
اين کار رو اونقدر ادامه بديد تا به پنجره مورد نظرتون برسيد.

MFiRE
چهارشنبه 14 اسفند 1387, 00:19 صبح
از برنامه ي Parent Getter Code Generator (http://vb-delphi-cpp.blogfa.com/post-3.aspx) مي تونيد استفاده كنيد.
اين برنامه به زبان دلفي و ويژوال بيسيك كد براي همچين كارايي توليد مي كنه.

كاملا منظوره شما رو متوجه شدم.
فقط بايد كده توليد شده توسط برنامه ي نامبرده رو كمي تغيير بديد تا به راحتي پنجره مورد نظرتون رو پيدا كنيد.

دانلود برنامه : vb-delphi-cpp.blogfa.com

hojjatcroos
چهارشنبه 14 اسفند 1387, 06:25 صبح
با تشکر از دوستان ولی برنامه هم کمکی نتونست بکنه - در Dialup Conection دو تا Edit هست هردو یک کلاس دارند اگه به جای Caption در FindwindowEx چیزی نگذاریم(nill) اولی رو(user name) پیدا می کنه و اگه بگذاریم هم همینطور با دستور که جناب دماوند هم گفتند یا نتونسم کار کنم یا نشد-اگه دوستان کمک کنند ممنون می شم

DAMAVAND
چهارشنبه 14 اسفند 1387, 07:06 صبح
با تشکر از دوستان ولی برنامه هم کمکی نتونست بکنه - در Dialup Conection دو تا Edit هست هردو یک کلاس دارند اگه به جای Caption در FindwindowEx چیزی نگذاریم(nill) اولی رو(user name) پیدا می کنه و اگه بگذاریم هم همینطور با دستور که جناب دماوند هم گفتند یا نتونسم کار کنم یا نشد-اگه دوستان کمک کنند ممنون می شم


به اين مثال دقت کنيد هندل هر دو Edit پنجره Dial-up Connection رو بر ميگردونه :


procedure TForm1.Button1Click(Sender: TObject);
var
h,h1,h2:HWND;
begin
h:=FindWindow('#32770','Connect Dial-up Connection');
h1:=FindWindowEx(h,0,'Edit',nil);//first edit's handle (User name)
h2:=GetWindow(h1,GW_HWNDNEXT);
h2:=GetWindow(h2,GW_HWNDNEXT);//second edit's handle (Password)

end;

موفق باشيد .

hojjatcroos
چهارشنبه 14 اسفند 1387, 09:39 صبح
خیلی ممنون-واقعا از شما تشکر می کنم - خیلی خیلی ممنون

عقاب سیاه
پنج شنبه 21 آبان 1388, 14:35 عصر
سلام چگونه می توان شماره تلفنش را هم تغییر داد!:عصبانی++:

Felony
پنج شنبه 21 آبان 1388, 14:57 عصر
سلام چگونه می توان شماره تلفنش را هم تغییر داد!:عصبانی++:

باید متن رو به ادیت مورد نظر ارسال کنید که دربارش زیاد بحث شده ، کلمات کلیدی PostMessage و SendMessage رو جست و جو کنید .

عقاب سیاه
جمعه 22 آبان 1388, 20:24 عصر
خیلی ممنون ولی فکر کنم جایگاه ورود شماره تلفن در پنجره اتصال به اینترنت یک ComboBox باشد!
می شه دربارش راهنمایی کنید: