# Native Code > برنامه نویسی در 6 VB > کامپوننت ها و ابزارهای کاربردی در VB6 >  دسترسي به اجزاي صفحه در کنترل WebBrowser

## butterfly8528

سلام دوستان عزیز .

من دیدم که در تاپیک های مختلف نسبت به انجام عمل بر روی یک صفحه وب سوال هایی شده که اکثرا هم بی پاسخ مانده اند . برای همین تصمیم گرفتم این تاپیک رو ایجاد کنم .

حالا برای انجام عملیات زیر بر روی یک صفحه وب ابتدا از منوی Project و قسمت Components کنترل  microsoft internet controls رو اضافه کنید .

گرفتن سورس تمام صفحه

   WebBrowser1.Document.Body.innerHTML    

گرفتن مقدار فيلد

 WebBrowser1.Document.All.Item("Name control").Value   

مقدار دهي به فيلد

 WebBrowser1.Document.All.Item("Name control").Document.Body.innertext  

کليک کردن

  WebBrowser1.Document.All.Item("Name control").Click   


امیدوارم مفید واقع بشه  :چشمک:

----------


## د. محمد عطار

يكي كار مي كردي مفيدتر بود ..
از رفرنس:
Microsoft HTML object liberary
اضافة مي كردي ...
كه تمام چیزها object  شن
من شخصا از اين module استفادة مي كنم

'*************************************************  **********************
'*                      Coded By : Mohammed Saeed                     *'
'*                      e-Mail : MS190@Gawab.com                      *'
'*                         Bahrain - Karbabad                         *'
'*************************************************  **********************
Dim objMSHTML As New MSHTML.HTMLDocument        'HTML DOC
Dim objDoc As New MSHTML.HTMLDocument
'-----------------
'           ***     Reg     ***             '
Const REG_SZ = 1 ' Unicode nul terminated string
Const REG_BINARY = 3 ' Free form binary
Const HKEY_CURRENT_USER = &H80000001
Private Declare Function RegCloseKey Lib "advapi32.dll" (ByVal hKey As Long) As Long
Private Declare Function RegCreateKey Lib "advapi32.dll" Alias "RegCreateKeyA" (ByVal hKey As Long, ByVal lpSubKey As String, phkResult As Long) As Long
Private Declare Function RegOpenKey Lib "advapi32.dll" Alias "RegOpenKeyA" (ByVal hKey As Long, ByVal lpSubKey As String, phkResult As Long) As Long
Private Declare Function RegSetValueEx Lib "advapi32.dll" Alias "RegSetValueExA" (ByVal hKey As Long, ByVal lpValueName As String, ByVal Reserved As Long, ByVal dwType As Long, lpData As Any, ByVal cbData As Long) As Long
''''''''''''''''''''''''''''''''''
Private Function OPENHTMLDOC(ByVal strURL As String)
'   HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Main\Disable Script Debugger
'   Set Yes
Disable_Script_Debugger
Set objDoc = objMSHTML.createDocumentFromUrl(strURL, vbNullString)
While objDoc.readyState <> "complete"
    DoEvents
Wend
End Function

Sub SaveString(hKey As Long, strPath As String, strValue As String, strData As String)      'Edit Key
    Dim Ret
    RegCreateKey hKey, strPath, Ret                                     'Create a new key
    RegSetValueEx Ret, strValue, 0, REG_SZ, ByVal strData, Len(strData) 'Save a string to the key
    '    RegSetValueEx Ret, strValue, 0, REG_BINARY, CByte(strData), 4  ' IF Data Binary
    RegCloseKey Ret                                                     'close the key
End Sub
Public Sub Disable_Script_Debugger()
    Dim strString As String
    'Ask for a value
    strString = 22
    'Save the value to the registry
   ' SaveStringLong HKEY_CURRENT_USER, "KPD-Team", "BinaryValue", CByte(strString)
   SaveString HKEY_CURRENT_USER, "Software\Microsoft\Internet Explorer\Main", "Disable Script Debugger", "yes"
End Sub



ونمونه آن
Dim l As HTMLLinkElement
        For i = 0 To objDoc.links.length - 1
            Link = objDoc.links.Item(i)
            Set l = objDoc.links.Item(i)
            MsgBox l.outerText
        Next i
براي نشان دادن متني كه لينك است

اميدوارم پاسخ مفیدی اضافه کرده باشم

----------


## warden

سلام
چطور فقط يک قسمت خاصي از سايت رو در MS Internet Control قرار بديم ؟

----------


## butterfly8528

> سلام
> چطور فقط يک قسمت خاصي از سايت رو در MS Internet Control قرار بديم ؟


لطفا منظورتون رو واضح تر بگید .

----------


## warden

سلام
خب وقتي تو کنترل Web Browser سايتي باز ميکنيم مثلا اين صفحه، جايي رو که ميخوام رو فقط نشون بده مثل اين عکس

----------


## sylverstar

سلام
در مورد مقدار دهي به فيلد
 چگونه بفهمیم که "Name Control"  چه نامی داره؟
برای مثال میخواهیم در صفحه اول گوگل فیلد سرچ را عبارت"tehran"  قرار دهیم

WebBrowser1.Document.All.Item("Name control").Document.Body.innertext

----------


## amj2009

> سلام
> در مورد مقدار دهي به فيلد
>  چگونه بفهمیم که "Name Control"  چه نامی داره؟
> برای مثال میخواهیم در صفحه اول گوگل فیلد سرچ را عبارت"tehran"  قرار دهیم
> 
> WebBrowser1.Document.All.Item("Name control").Document.Body.innertext



عليك سلام
براي اينكار روش هاي مختلفي وجود داره ولي يكي از بهترين راه هاش اينه كه با همون دستور اولي سورس صفحه رو دربياري بعد از اون تو بيشتر سايتا object ها بصورت id=control name مشخص ميشن كه بجاي control name اسم كنترله مثلا id=ct100_BtnPrint 
موفق باشي

----------


## amj2009

سلام به همگي
من يه سوال برام پيش اومده
چطوري ميتونيم يه تيكه از متن توي صفحه رو توي يه متغير string بندازيم؟
لطفا جواب بديد سريع

----------


## mhsn-vb

مثلا من می خوام با استفاده از WebBrowser1.Document.All.Item("Name control").Click روی یه بنر گرافیکی یا یه لینک مثل لینک زیر کلیک کنم.
<a href="http://www.google.com">سایت گوگل</a>
این کار رو چه جوری انجام بدم، یعنی در این صورت Name control چی میشه ؟؟؟؟؟

----------


## p30rex

> مثلا من می خوام با استفاده از WebBrowser1.Document.All.Item("Name control").Click روی یه بنر گرافیکی یا یه لینک مثل لینک زیر کلیک کنم.
> <a href="http://www.google.com">سایت گوگل</a>
> این کار رو چه جوری انجام بدم، یعنی در این صورت Name control چی میشه ؟؟؟؟؟


سلام
من از این استفاده می کنم:

Dim refresh As Object
Set refresh = WebBrowser1.Document.getElementsByTagName("img")(0  )
refresh.Click


میتونی با تغییر عدد مشخص کنی رو کدوم عکس کلیک بشه(ترتیبش)

----------


## ameri110

برای این که بتونید نام کنترل را پیدا کنید بهترین راه اینه که از add-on فایر باگ (fire bug) برای فایر فاکس استفاده کنید
بس نصب کافیه روی قسمت مورد نظر کلیک کنید تا مشخصات کامل آن را به شما بدهد
البته این اد آن قابلیت های بسیار بیشتری دارد

----------


## sinavb

> سلام
> خب وقتي تو کنترل Web Browser سايتي باز ميکنيم مثلا اين صفحه، جايي رو که ميخوام رو فقط نشون بده مثل اين عکس


 دوستان من هم همین سوال رو دارم

----------


## parselearn

> سلام
> خب وقتي تو کنترل Web Browser سايتي باز ميکنيم مثلا اين صفحه، جايي رو که ميخوام رو فقط نشون بده مثل اين عکس





> دوستان من هم همین سوال رو دارم


https://barnamenevis.org/showthread.p...ght=webbrowser

----------


## sinavb

ممنون دوست عزیز ولی من می خوام فقط همون تیبل نشون داده شه نه اینکه با اسکرول بیارمش رو اون قسمت 
در ضمن من کدی که تو اون صفحه بود رو گزاشتم درون لود صفحه ولی ارور داد

----------


## NSNhaCkEr

الان مشکل من این هست که نمیشه نوشته رو اورد 

مثلا من 2 تا عدد رو میفرستم به یک وب سایت اونم یک کاری رو این عدد ها انجام میده حالا خروجی رو چاپ می کنه 
چه جوری  اون خروجی رو بیارم تو برنامه 

عدد های چاپ شده که هیچ اسمی ندارند که من از المنت اونا استفاده کنم 

تشکر

----------


## Mousavmousab

سلام

من تازه با این کنترل آشنا شدم.
منظورتون گرفتن کل صفحه چیه ؟ ( یا چیز های دیگه ؟)

من آموزش این شی را از کجا تهیه کنم ؟

من این کامپوننت را روی فرم می اندازم ولی سفید رنگه و هیچ شکل خاصی نداره
کسی هست یه مقدار توضیح بده به من که باید چطوری ازش استفاده کنم ؟
مثلاٌ : قبل از هر چیز ساده ترین و پر کاربرد ترین موارد استفاده را به من بگه ...

بی نهایت ممنون می شم.

----------


## warden

> سلام
> من از این استفاده می کنم:
> 
> Dim refresh As Object
> Set refresh = WebBrowser1.Document.getElementsByTagName("img")(0  )
> refresh.Click
> 
> 
> میتونی با تغییر عدد مشخص کنی رو کدوم عکس کلیک بشه(ترتیبش)


میشه بیشتر توضیح بدین
عدد عکس رو چطور پیدا کنم؟

----------


## warden

> میشه بیشتر توضیح بدین
> عدد عکس رو چطور پیدا کنم؟


up.........

----------


## alidesigner

سلام من چطور میتونم جاوا اسکریپت رو تو WebBrowser1 فعال کنم به طوری که از کاربر نپرسه؟؟

----------


## alidesigner

سلام من چطور میتونم جاوا اسکریپت رو تو WebBrowser1 فعال کنم به طوری که از کاربر نپرسه؟؟

----------


## www.pc3enter.tk

البته خودش فعاله ولی
WebBrowser1.silent = true

----------

