# Native Code > برنامه نویسی در 6 VB > کامپوننت ها و ابزارهای کاربردی در VB6 >  کنترل Web Browser – ساخت مرورگر صفحات وب

## saeedzx

برنامه 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]xURL آدرس  مقصد مي باشد . 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

سلام ميخواستم بدونم چگونه ميتونم در كنترل وب بروزر با وي بي مثلا اگر روي دكمه اي كليك كردم در وب بروزر چك باكسي بانام x رو مفدارش رو تعيين كنه يعني مثل ادرس نظرسنجي وبلگم رو ادرس URL قرار ميديم و  شخص نام را وارد نكند و نام را ما خودمان تعيين كنيم و در اخر كليد ثبت نظر را هم با زدن دكمه اي در فرم بزنيم
ممنون ميشم لطفا اگاهم كن
www.DivareZazerani.blogfa.com
Yasserfaraz2010@yahoo.com

----------


## xxxxx_xxxxx

> سلام ميخواستم بدونم چگونه ميتونم در كنترل وب بروزر با وي بي مثلا اگر روي دكمه اي كليك كردم در وب بروزر چك باكسي بانام x رو مفدارش رو تعيين كنه يعني مثل ادرس نظرسنجي وبلگم رو ادرس URL قرار ميديم و  شخص نام را وارد نكند و نام را ما خودمان تعيين كنيم و در اخر كليد ثبت نظر را هم با زدن دكمه اي در فرم بزنيم
> ممنون ميشم لطفا اگاهم كن
> www.DivareZazerani.blogfa.com
> Yasserfaraz2010@yahoo.com


سلام،
جواب سؤال خودتون رو در تاپیک های این صفحه پیدا کنید.
این موضوع قبلاً مطرح شده.

----------


## YasserDivaR

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

----------


## sylverstar

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

----------


## sylverstar

سلام
دوستان چگونه میشود خاصیت scroll متطلق به آبجکت webbrowser را که بطور پیش فرض که بالا و سمت چپ است به گزینه دیگری تغییر داد
مثلا اسکرول را به پایین و راست تغییر داد
میشه چنین کاری کرد؟

----------


## multi-site

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

----------


## meys34

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


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

----------

