سلام دوستان می خواستم ببینم چه طور میشه هندل دو پنجره با کلاس و عنوان یکسان را به دست آورد اگه دقت کنید می بینید در Dialup Conection ها این طور هست کسی میتونه سورسی یا کدی ارائه بده با تشکر
سلام دوستان می خواستم ببینم چه طور میشه هندل دو پنجره با کلاس و عنوان یکسان را به دست آورد اگه دقت کنید می بینید در Dialup Conection ها این طور هست کسی میتونه سورسی یا کدی ارائه بده با تشکر
خوب اين در موارد بايد از تابع GetWindow هندل پنجره مورد نظر رو بدست بياريد.
بنجره هايي که اسم و کلاس يکسان دارند داراي هندل هاي مختلف ولي با سلسله مراتب مختلف هستن اول هندل يکي از پنجره ها رو بدست بياريد بعد با کمک تابع GetWindow هندل پنجره بعد از اون رو بدست بياريد.
اين کار رو اونقدر ادامه بديد تا به پنجره مورد نظرتون برسيد.
از برنامه ي Parent Getter Code Generator مي تونيد استفاده كنيد.
اين برنامه به زبان دلفي و ويژوال بيسيك كد براي همچين كارايي توليد مي كنه.
كاملا منظوره شما رو متوجه شدم.
فقط بايد كده توليد شده توسط برنامه ي نامبرده رو كمي تغيير بديد تا به راحتي پنجره مورد نظرتون رو پيدا كنيد.
دانلود برنامه : vb-delphi-cpp.blogfa.com
با تشکر از دوستان ولی برنامه هم کمکی نتونست بکنه - در 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;
موفق باشيد .
خیلی ممنون-واقعا از شما تشکر می کنم - خیلی خیلی ممنون
سلام چگونه می توان شماره تلفنش را هم تغییر داد!
خیلی ممنون ولی فکر کنم جایگاه ورود شماره تلفن در پنجره اتصال به اینترنت یک ComboBox باشد!
می شه دربارش راهنمایی کنید: