PDA

View Full Version : کنترل Web Browser – ساخت مرورگر صفحات وب



saeedzx
شنبه 06 تیر 1388, 19:54 عصر
برنامه Internet Explorer يا iexplore.exe در واقع برنامه کوچکي است که وظيفه اصلي آن ايجاد چارچوبي براي بهم پيوستن عناصر مختلف است و اين عناصر هستند که وظايف اصلي مثل load کردن صفحات وب ، اجراي کدهاي Html و غيره را انجام مي دهند . اصلي ترين عنصري که مستقيماً توسط iexplore.exe استفاده مي شود کنترل Webbrowser ( موجود در فايل shdocrw.dll ) مي باشد . وظيفه اين فايل dll ، عبارت است از حرکت بين صفحات وب ، مديريت تاريخچه صفحات ديده شده و غيره . اين فايل خود از فايل ديگري بنام Mshtml.dll استفاده مي کند که وظيفه آن بررسي و اجراي فايلهاي html است . مايکروسافت به برنامه نويسان اين امکان را داده که بتوانند در برنامه هايشان از کنترل webbrowser استفاده کنند . با استفاده از اين کنترل مي توان به سادگي يک مرورگر وب تقريباً کامل ساخت .

خصوصيات کنترل Webbrowser :
Webbrowser علاوه بر خواص استانداردي مثل width ، height و … خواص زير را دارد :
1 – Busy : اگر در حال load کردن يک صفحه يا در حال جستجو در وب باشد اين خاصيت True است . توسط متد Stop مي توان عمليات جاري را متوقف کرد .
2 – Container : ارجاع به شي نگهدارنده کنترل webbrowser
3 – Document : ارجاع به صفحه html فعلي . براي کار با اين صفحه html مي توان از خواص و متدهابي شي Document استفاده کرد .
4 – LocationName : حاوي آدرس محلي است که اکنون در کنترل webbrowser ، load شده است . اگر اين محل يک صفحه html باشد عنوان آن صفحه خواهد بود و اگر اين محل يک فايل در شبکه باشد مسير کامل آن فايل خواهد بود .
5 – LocationURL : حاوي url محلي است که فعلاً در کنترل webbrowser ، load شده است .
6 – Offline : اگر کنترل webbrowser در حالت عدم اتصال باشد مقدار آن True و در غيراينصورت False است .
7 – Parent : فرمي را نشان مي دهد که کنترل webbrowser در آن قرار دارد .
8 – ReadyState : وضعيت کنترل webbrowser را برمي گرداند .

متدهاي کنترل webbrowser : اين متدها مربوط به مرور در صفحات وب هستند :
1- GoBack : در ليست تاريخچه url ها ، يکي به عقب برمي گردد .
2 – GoForward : در ليست تاريخچه url ها ، يکي به جلو مي رود .
3 – GoHome : به homepage مرورگر مي رود .
4 – Navigate : به يک url يا فايل مي رود . ساختار اين متد بصورت زير است :

Navigate URL [Flags,][TargetFrameName,][PostData,][Headers]x
URL آدرس مقصد مي باشد . Flags نحوه باز شدن آدرس مقصد را تعيين مي کند . اگر اين پارامتر ذکر نشود آدرس جديد در پنجره فعلي باز خواهد شد و به ليست تاريخچه اضافه شده و اگر کپي آن در temperory cache موجود باشد از آنجا خوانده مي شود . مقادير پارامتر Flags عبارتند از :
- NavOpenInNewWindow : آدرس جديد را در پنجره جديدي باز مي کند .
- NavNoHistory : به ليست تاريخچه اضافه نمي شود بلکه جايگزين صفحه فعلي مي شود .
- NavNoReadFromCache : صفحه جديد از cache خوانده نمي شود .
- NavNoWriteToCache : صفحه جديد روي cache نوشته نمي شود

Event هاي کنترل webbrowser : اين event ها مربوط به مرور در وب و تغيير حالت آن هستند :
1 – CommandStateChange : براي فعال يا غيرفعال کردن دکمه هاي Forward و Back در مرورگر استفاده مي شود . شکل کلي فراخواني اين event بصورت زير است :

Private Sub WebBrowser1_CommandStateChange(ByVal Command As Long, ByVal Enable As Boolean)

که command فرماني است که حالت فعال آن تغيير کرده است و دو مقدار مي گيرد : 1 و 3 که بترتيب معادل فرمانهاي GoForward و GoBack هستند .
Enable فعال يا غيرفعال بودن فرمان را تعيين مي کند .
2 – DocumentComplete : اين event زماني فعال مي شود که صفحه در حال load شدن به حالت ReadyState_Complete برود . شکل کلي فراخواني اين event بصورت زير است :
Private Sub WebBrowser1_DocumentComplete(ByVal pDisp As Object, URL As Variant)
که pDisp ارجاعي به کنترل webbrowser است که event در آن رخ داده است و URL آدرس صفحه در حال load شدن است .
3 – DownloadBegin : اين event در آغاز حرکت به صفحه جديد روي مي دهد و هيچ پارامتري نمي گيرد . مرورگر مي تواند در اين event پيغامي براي شروع عمليات جديد نشان مي دهد .
4 – DownloadComplete : اين event در پايان عمليات يا در صورت انصراف کاربر يا بروز خطا روي مي دهد .
5 – ProgressChange : با بروز هر تغييري در وضعيت load ، اين event روي مي دهد . شکل کلي فراخواني آن بصورت زير است :

Private Sub WebBrowser1_ProgressChange(ByVal Progress As Long, ByVal ProgressMax As Long)

که Progress نشان دهنده پيشرفت عمليات ( بايتهاي load شده ) است . پارامتر ProgressMax تعداد کل بايتهايي که بايد load شوند را نشان مي دهد بنابر اين :

(Progress/ProgressMax)*100=درصد پيشرفت عمليات load

يک مثال ساده :
از منوي project مورد components را انتخاب کنيد و از ليست کنترلها ، Microsoft Internet Controls را به toolbar خود اضافه کنيد . يک کنترل WebBrowser روي فرم قرار دهيد و سايز آنرا به اندازه ابعاد فرم خود قرار دهيد . يک textbox و يک دکمه روي فرم قرار دهيد . کد زير را براي event مربوط به کليک دکمه بنويسيد :

WebBrowser.Navigate textbox.text

YasserDivaR
پنج شنبه 04 شهریور 1389, 03:53 صبح
سلام ميخواستم بدونم چگونه ميتونم در كنترل وب بروزر با وي بي مثلا اگر روي دكمه اي كليك كردم در وب بروزر چك باكسي بانام x رو مفدارش رو تعيين كنه يعني مثل ادرس نظرسنجي وبلگم رو ادرس URL قرار ميديم و شخص نام را وارد نكند و نام را ما خودمان تعيين كنيم و در اخر كليد ثبت نظر را هم با زدن دكمه اي در فرم بزنيم
ممنون ميشم لطفا اگاهم كن
www.DivareZazerani.blogfa.com
Yasserfaraz2010@yahoo.com

xxxxx_xxxxx
پنج شنبه 04 شهریور 1389, 07:53 صبح
سلام ميخواستم بدونم چگونه ميتونم در كنترل وب بروزر با وي بي مثلا اگر روي دكمه اي كليك كردم در وب بروزر چك باكسي بانام x رو مفدارش رو تعيين كنه يعني مثل ادرس نظرسنجي وبلگم رو ادرس URL قرار ميديم و شخص نام را وارد نكند و نام را ما خودمان تعيين كنيم و در اخر كليد ثبت نظر را هم با زدن دكمه اي در فرم بزنيم
ممنون ميشم لطفا اگاهم كن
www.DivareZazerani.blogfa.com (http://www.DivareZazerani.blogfa.com)
Yasserfaraz2010@yahoo.com
سلام،
جواب سؤال خودتون رو در تاپیک های این صفحه (http://barnamenevis.org/forum/tags.php?tag=WebBrowser) پیدا کنید.
این موضوع قبلاً مطرح شده.

YasserDivaR
دوشنبه 08 شهریور 1389, 23:47 عصر
سلام ميخواستم بدونم چگونه نيتونم با استفاده از كامپونت webbrowser در وي چه كدي بنويسم كه وقتي در يك تكست باكس متني نوشتيم در يك تكست باكس صفحه HTML (موقعي كه ان لاين هستيم) همان وارد شود يعني اتصال HTML به وي بي نكته : من براي نظر خواهي وبلاگم يك برنامه اي ميخوام بنويسم كه وقتي طرف ان لاينه بتونه نظر بده و ادرس لود صفحه همان ادرس نظر سنجي بلاگفا ي من است كه ميخوام طرف فقط در فرم نام رو وارد كرد در پايين يا همان HTML وارد شود لطفا از طريق زير جواب بديد Yasserfaraz2010@Yahoo.com http://www.divarezazerani.blogfa.com/ ------------------------ مثل اين كد مخصوص يك تكست باكسه form1.caption=text1.text هرچي در تكست نوشتيم سريعا در فرم وارد ميشه ميخوام تو HTML مثل اين باشه وقتي در تكس باكس نوشتيم تو صفحه HTML وارد بشه

sylverstar
سه شنبه 13 مهر 1389, 14:47 عصر
سلام
روش غیر فعال کردن تصاویر در webbrowser چگونه است
بگونه ای که هیچ تصویری لود نشده و صفحه سریع بار شود با محتوای تکست و فریم
در صورت امکان عناصر فلش نیز لود نشود عالی میشود.
==============================
چون کسی جواب نداد خودم جواب را میگذارم
دسترسی به این گزینه بطور مستفیم از داخل برنامه امکان پذیر نیست
با اعمال تغییر در برنامه I.E و غیر فعال کردن گزینه نمایش تصویر آبجکت موجود در برنامه شما نیز تنظیم میشد
دلیل استفاده از یک ACTIVEX مشابه است

sylverstar
شنبه 24 مهر 1389, 15:35 عصر
سلام
دوستان چگونه میشود خاصیت scroll متطلق به آبجکت webbrowser را که بطور پیش فرض که بالا و سمت چپ است به گزینه دیگری تغییر داد
مثلا اسکرول را به پایین و راست تغییر داد
میشه چنین کاری کرد؟

multi-site
سه شنبه 09 دی 1393, 21:24 عصر
با سلام به استادان گرانقدر
یه سوال داشتم
برای مثال یه سایت داریم که توش فرم ورود داره ما باید یوزر نیم و پسورد رو بدیم و روی کلید ورود کلیک کنیم تا به سیستم ورود کنیم درسته؟
خوب ما کلیدی با ای دی :submit داریم.
و یه ورودی با ایدی:username
و یه ورودی دیگه با ایدی:password
من میخام به این دو تا ورودی یه مقداری رو بدم و روی کلید که ایدی سابمیت داره کلیک کنم.
توجه :همه اینا باید به صورت اتوماتیک باشه ینی با کد انجام بشه لطفا به زبان c#توضیح دهید مرسی.

meys34
پنج شنبه 11 دی 1393, 16:20 عصر
با سلام به استادان گرانقدر
یه سوال داشتم
برای مثال یه سایت داریم که توش فرم ورود داره ما باید یوزر نیم و پسورد رو بدیم و روی کلید ورود کلیک کنیم تا به سیستم ورود کنیم درسته؟
خوب ما کلیدی با ای دی :submit داریم.
و یه ورودی با ایدی:username
و یه ورودی دیگه با ایدی:password
من میخام به این دو تا ورودی یه مقداری رو بدم و روی کلید که ایدی سابمیت داره کلیک کنم.
توجه :همه اینا باید به صورت اتوماتیک باشه ینی با کد انجام بشه لطفا به زبان C#‎توضیح دهید مرسی.

اینجا تاپیک VB6 هست و این تاپیک مربوط به چندین سال پیش هست...
اگر سوالی دارید بایستی تاپیک جدید توی تالار مربوطه ایجاد کنید...