PDA

View Full Version : دسترسي به اجزاي صفحه در کنترل WebBrowser



butterfly8528
سه شنبه 23 تیر 1388, 22:34 عصر
سلام دوستان عزیز .

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

حالا برای انجام عملیات زیر بر روی یک صفحه وب ابتدا از منوی 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


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

د. محمد عطار
سه شنبه 23 تیر 1388, 22:48 عصر
يكي كار مي كردي مفيدتر بود ..
از رفرنس:
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
جمعه 31 اردیبهشت 1389, 14:04 عصر
سلام
چطور فقط يک قسمت خاصي از سايت رو در MS Internet Control قرار بديم ؟

butterfly8528
شنبه 01 خرداد 1389, 00:25 صبح
سلام
چطور فقط يک قسمت خاصي از سايت رو در MS Internet Control قرار بديم ؟

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

warden
چهارشنبه 26 خرداد 1389, 21:22 عصر
سلام
خب وقتي تو کنترل Web Browser سايتي باز ميکنيم مثلا اين صفحه، جايي رو که ميخوام رو فقط نشون بده مثل اين عکس

sylverstar
یک شنبه 11 مهر 1389, 10:32 صبح
سلام
در مورد مقدار دهي به فيلد
چگونه بفهمیم که "Name Control" چه نامی داره؟
برای مثال میخواهیم در صفحه اول گوگل فیلد سرچ را عبارت"tehran" قرار دهیم

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

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

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


عليك سلام

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

amj2009
یک شنبه 11 مهر 1389, 11:28 صبح
سلام به همگي
من يه سوال برام پيش اومده
چطوري ميتونيم يه تيكه از متن توي صفحه رو توي يه متغير string بندازيم؟
لطفا جواب بديد سريع

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

p30rex
پنج شنبه 07 بهمن 1389, 17:09 عصر
مثلا من می خوام با استفاده از 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
دوشنبه 11 بهمن 1389, 11:24 صبح
برای این که بتونید نام کنترل را پیدا کنید بهترین راه اینه که از add-on فایر باگ (fire bug) برای فایر فاکس استفاده کنید
بس نصب کافیه روی قسمت مورد نظر کلیک کنید تا مشخصات کامل آن را به شما بدهد
البته این اد آن قابلیت های بسیار بیشتری دارد

sinavb
سه شنبه 09 فروردین 1390, 06:03 صبح
سلام
خب وقتي تو کنترل Web Browser سايتي باز ميکنيم مثلا اين صفحه، جايي رو که ميخوام رو فقط نشون بده مثل اين عکس
دوستان من هم همین سوال رو دارم

parselearn
سه شنبه 09 فروردین 1390, 10:45 صبح
سلام
خب وقتي تو کنترل Web Browser سايتي باز ميکنيم مثلا اين صفحه، جايي رو که ميخوام رو فقط نشون بده مثل اين عکس


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

http://barnamenevis.org/showthread.php?272413-%D9%86%D9%85%D8%A7%DB%8C%D8%B4-%D8%A8%D8%AE%D8%B4%DB%8C-%D8%A7%D8%B2-%DB%8C%DA%A9-%D8%B5%D9%81%D8%AD%D9%87-%D9%88%D8%A8-%D8%AF%D8%B1-WebBrowser&highlight=webbrowser

sinavb
جمعه 26 فروردین 1390, 22:02 عصر
ممنون دوست عزیز ولی من می خوام فقط همون تیبل نشون داده شه نه اینکه با اسکرول بیارمش رو اون قسمت
در ضمن من کدی که تو اون صفحه بود رو گزاشتم درون لود صفحه ولی ارور داد

NSNhaCkEr
یک شنبه 29 خرداد 1390, 17:55 عصر
الان مشکل من این هست که نمیشه نوشته رو اورد

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

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

تشکر

Mousavmousab
چهارشنبه 26 مرداد 1390, 21:56 عصر
سلام

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

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

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

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

warden
چهارشنبه 31 خرداد 1391, 16:26 عصر
سلام
من از این استفاده می کنم:

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


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

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

warden
جمعه 02 تیر 1391, 13:29 عصر
میشه بیشتر توضیح بدین
عدد عکس رو چطور پیدا کنم؟

up.........

alidesigner
شنبه 10 بهمن 1394, 13:33 عصر
سلام من چطور میتونم جاوا اسکریپت رو تو WebBrowser1 فعال کنم به طوری که از کاربر نپرسه؟؟

alidesigner
شنبه 10 بهمن 1394, 13:55 عصر
سلام من چطور میتونم جاوا اسکریپت رو تو WebBrowser1 فعال کنم به طوری که از کاربر نپرسه؟؟

www.pc3enter.tk
پنج شنبه 19 فروردین 1395, 01:43 صبح
البته خودش فعاله ولی

WebBrowser1.silent = true