سلام
اگر چندین صفحه سایت با آدرس های متفاوت توسط اینترنت اکسپلورر باز شده باشد چگونه می توانم آدرس صفحه ای که Focus شده است را به دست آورم؟
سلام
اگر چندین صفحه سایت با آدرس های متفاوت توسط اینترنت اکسپلورر باز شده باشد چگونه می توانم آدرس صفحه ای که Focus شده است را به دست آورم؟
سلام
اول یک مطلب رو روشن کنم چون برنامه نویسان VB اغلب نمیدوند (البته با اجازه اساتید)
ویندوز به همه چهار چوب ها به چشم یک پنجره نگاه میکنه و یک اشاره گر پنجره با نام hWnd به اونا اختصاص میده در نتیجه یک TextBox یا یک دکمه یا هر کنترلر دیگری از نظر ویندوز یک پنجره است. در نتیجه در جملات زیر وقتی میگم پنجره منظورم هر چهارچوبی است که ویندوز اونو به عنوان پنجره قبول داره. (اصلاَ نام ویندوز از اینجا آمده "سیستم عامل پنجره ها")
شاید دوستان راه بهتری بلد باشن ولی چیزی که به ذهن من میرسه اینه.
یک API داریم که پنجره Focus شده را برمیگردونه!
یک API هم داریم که پنجره های Child یک پنجره را بر میگردونه.
یک API هم داریم خصوصیت Text یک پنجره را برمیگردونه.
با تلفیق این سه API و به شرط فعال بودن AddressBar و با کمی زحمت میشه همچین کاری کرد.
با API اولی پنجره IE فعال رو پیدا میکنی
با API دومی TextBox مربوط به AddressBar را پیدا میکنی و
با API سومی متن داخل اون TextBox را پیدا میکنی.
الآن حضور ذهن ندارم ولی تا فردا این سه تا API را همراه با چندتا دیگه در همین جا برات میزارم. (البته بازم میگم کمی زحمت داره)
حالا شاید هم تا فردا کسی که سوادش از ما بیشتر بود، عشقش کشید و یک راه راحت تر ارائه داد.
دست شما درد نكند دوست عزيز
من اين سئوال را از سايت برنامه نويس چند وقت پيش پرسيده بودم ولي به جوابي نرسيدم ممنون ميشم جواب دهيد
مي توني از سورس برنامه زير استفاده كني :
[ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ]
ممنون Romina2006
حالا بايد چي كار كنم كه بدون اينكه موس را روي آدرس بار ببرم متن داخل اونا بدست آورم ؟
به نظرم بايد يك حلقه For از يك تا تعداد اشيا موجود در IE ايجاد كرد و اگر به شي Address Bar رسيد آنگاه متن داخل اونا بده اما چجوري نمي دونم
خواهشا اگر كسي چيزي در اين مورد مي دونه لطفا راهنمايي كنه
سلام
من هنوز نگاهی به کدهایی که دوستان گذاشتن ننداخته ام
ولی اینم API هایی که گفته بودم. بنظر نامشان گویای کارشان است و نیازی به توضیح ندارند.
ولی این API فرمت VB8 هستند اگر احتمالاَ، شاید خواستید در VB6 در پیت استفاده شان کنید باید
اولاَ کلمات Unicode را حذف کنید(این VB6 هیچی نو زندگیش نوفهمه!)
دوماَ تمام توابعی که به Wبزرگ ختم میشوند را به Aبزرگ تغییر دهید.
سوماَ تمام Integer ها را به Long تغییر دهید.
کد:برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
من عکسی (4برابر واقعی) از Vista-IE7 تهیه کرده ام که امیدوارم در فهم مسئله کمک کنید
کد:برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنیدهر پنجره ای یک نام کلاس دارد که از روی آن هم میتوانی پنجره را پیدا کنی.
مثلاَ در ویستا هفت سطح تودرتویی وجود دارد تا به TextBox اصلی برسی یعنی اول باید پنجره فعال با نام کلاس IEFrame را پیدا کنی، بعد در بین فرزندان یا اعضای IEFrame دنبال WorkerW بگردی و الی آخر. (البته امکان دارد نام این کلاسها در XP فرق داشته باشند)
راستی اگر خواستی با VB8 کارکنی، من یک DLL با یک ماژول با نام NativeWindow دارم که کار را بسیار، بسیار راحت میکند، حتی اگر خواستی شاید بتوانم کل کدی را که خواستی با استفاده از NativeWindow برایت بفرستم.
راستی توضیحات این DLL
یا
[ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ]
Last edited by _H2_; 04-03-2007 at 11:33. دليل: اصلاح عکس برای نمایش بهتر
کد:برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
هم اکنون 1 کاربر در حال مشاهده این تاپیک میباشد. (0 کاربر عضو شده و 1 مهمان)