ورود

View Full Version : مبتدی: باز کردن سایت و پر کردن فیلدهای آن



ahadgd
سه شنبه 19 مهر 1390, 00:08 صبح
سلام
من می خوام با vb6 یه برنامه ای بنویسم که با اون صفحه لوگین سایت باز بشه بعد user و pass رو وارد و داخل محیط بشه
چطور میشه این کار و کرد با WebBrowser میشه؟
سایت رو جستوجو کردم چیزی نبود یا جواب نداده بودن یا به زبان های دیگه بود

محسن واژدی
سه شنبه 19 مهر 1390, 00:29 صبح
سلام
دستور زیر به سایت بلاگفا لوگین میشود که میتوانید فیلدها، و دکمه submit آنرا جایگزین کنید:

WebBrowser1.Document.All("uid").Value = "UserName"
WebBrowser1.Document.All("password").Value = "Password"
WebBrowser1.Document.All("btnSubmit").Click



موفق باشید

ahadgd
سه شنبه 19 مهر 1390, 16:20 عصر
سلام ممنون با این کد من تونستم وارد پنل بشم و کار مورد نظر رو انجام بدم ولی چطوری میشه پیغام رو خوند.
مثلا روی لینکی کلیک میشه سایت یه msg box میده و توش پیغام میده. چطور میشه قبل از این که این پیغام باز شه اون پیغام رو خوند و از باز شدنش جلوگیری کرد
زبان سایت هم .aspx هست

محسن واژدی
سه شنبه 19 مهر 1390, 17:09 عصر
سلام
به این صورت وجود ندارد، یا اگر متدی باشد بنده اطلاع ندارم، اما متدی است به نام silent که از نمایش خطاهای webbrowser جلوگیری میکند

موفق باشید

ahadgd
سه شنبه 19 مهر 1390, 17:17 عصر
سلام
به این صورت وجود ندارد، یا اگر متدی باشد بنده اطلاع ندارم، اما متدی است به نام silent که از نمایش خطاهای webbrowser جلوگیری میکند

موفق باشید
خوب نمیشه این صفحه باز شده را بست؟وقتی رو لینک کلیک میشه صفحه ای با نام Message from webpage باز میشه و توش پیغام مربوطه نوشته میشه و تا رو دکمه ok به صورت دستی کلیک نشه برنامه در همون جا متوقف میشه

just4froum
سه شنبه 19 مهر 1390, 17:58 عصر
با سلام :

این ok که شما میخواید روش کلیک کنید بعید میدونم آیدی یا نیم داشته باشه فکر کنم باید از sendkeys استفاده کنی.

ahadgd
چهارشنبه 20 مهر 1390, 09:51 صبح
با سلام :

این ok که شما میخواید روش کلیک کنید بعید میدونم آیدی یا نیم داشته باشه فکر کنم باید از sendkeys استفاده کنی.
سلام ممنون که کمک میکنید خوب چجوری باید از Sendkeys استفاده کنم

aria1o
چهارشنبه 20 مهر 1390, 10:20 صبح
با سلام
دوست عزیز اگه دقیق آدرس سایت رو میدادی سریع تر میتونستی جواب بگیری.ولی باز من پیشنهاد میکنم با استفاده از تابع FindWindow منتظر شی تا پنجره مورد نظر باز بشهه ،اون وقت میتونی پنجره مورد نظر رو به راحتی ببندی...:چشمک:

ahadgd
چهارشنبه 20 مهر 1390, 21:45 عصر
بازم سلام چطوری اسم msgbox باز شده توسط webbrowser داخل برنامه رو پیدا کنم تا بتونم با تابع FindWindow اونو ببندم

aria1o
چهارشنبه 20 مهر 1390, 22:18 عصر
R=findwindow(vbnulstring,"esme msgbox")

ﺳﺮﭺ ﮐﻨﯽ ﺗﻮ ﻫﻤﯿﻦ ﺳﺎﯾﺖ ﮐﺎﻣﻠﺎ ﺩﻭﺳﺘﺎﻥ ﺗﻮﺿﯿﺢ ﺩﺍﺩﻥ...

ahadgd
یک شنبه 24 مهر 1390, 22:32 عصر
R=findwindow(vbnulstring,"esme msgbox")

ﺳﺮﭺ ﮐﻨﯽ ﺗﻮ ﻫﻤﯿﻦ ﺳﺎﯾﺖ ﮐﺎﻣﻠﺎ ﺩﻭﺳﺘﺎﻥ ﺗﻮﺿﯿﺢ ﺩﺍﺩﻥ...
سلام ممنون با این دستور تونستم msgbox رو پیدا کنم و ببندم حالا یه مشکلی که هست به اطلاعات داخل msgbox هم نیاز هست
حالا که کد Msgbox را پیدا کردیم چطوری محتویاتش رو بخونم
یه برنامه پیدا کرم که می تونست این کارو بکنه ولی باید موس رو اون قسمت قرار بگیره تا نشون بده من می خوام بدون این که موس رو اون قسمت بره بشه با کد هندل msgbox محتویات رو خوند
اینم آدرس برنامه ای که تو سایت پیدا کردم (http://barnamenevis.org/showthread.php?278529-%D8%A7%D8%B1%D8%B3%D8%A7%D9%84-%D9%85%D8%AA%D9%86-%D8%A8%D9%87-%DA%86%D9%86%D8%AF-%D8%AA%D9%83%D8%B3%D8%AA-%D8%A8%D8%A7%D9%83%D8%B3-%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87-%D8%AF%D9%8A%DA%AF%D8%B1-%D8%AA%D9%88%D8%B3%D8%B7-%D9%87%D9%86%D8%AF%D9%84&p=1229716&viewfull=1#post1229716)

با این کد هم تونستم فقط هندل اولین شی داخل msgbox رو پیدا کنم چون class name های شی داخل msgbox یکی هستند
i = FindWindowEx(i, 0&, "Static", vbNullString)

محسن واژدی
دوشنبه 25 مهر 1390, 18:28 عصر
سلام
دستور زیر لیست آبجکت های موجود در فرم فعلی+ نام کلاس هرشی + محتویات textboxها را برمیگرداند، که میتوانید با جایگزین کردن هندل پیام بدست آمده در آن محتویات textbox مورد نظر را دریافت کنید:

Option Explicit
Private Declare Function GetClassName Lib "user32" Alias "GetClassNameA" (ByVal hwnd As Long, ByVal lpClassName As String, ByVal nMaxCount As Long) As Long
Private Declare Function GetWindow Lib "user32" (ByVal hwnd As Long, ByVal wCmd As Long) As Long
Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As Any) As Long
Private Const GW_CHILD As Long = 5
Private Const GW_HWNDNEXT As Long = 2
Private Const WM_GETTEXT = &HD
Private Sub Command1_Click()
Dim lngHandle&
Dim strClassName$, intCNamLen&
Dim strTextCont$, lngRet&
List1.Clear
lngHandle& = GetWindow(Me.hwnd, GW_CHILD)
Do
'get class name
strClassName$ = String(255, Chr(0))
intCNamLen& = GetClassName(lngHandle&, strClassName$, Len(strClassName$))
strClassName$ = Left(strClassName$, intCNamLen&)
'get textbox contents
strTextCont$ = String(500, Chr(0))
lngRet& = SendMessage(lngHandle&, WM_GETTEXT, Len(strTextCont$), strTextCont$)
strTextCont$ = Left(strTextCont$, lngRet&)
If strTextCont$ = "" Then strTextCont$ = ""
''''''''''''''''''''
List1.AddItem lngHandle& & vbTab & strClassName$ & vbTab & vbTab & "[" & strTextCont$ & "]"
lngHandle& = GetWindow(lngHandle&, GW_HWNDNEXT)
Loop Until lngHandle& = 0
End Sub

lngHandle&: هندل شی یافت شده
strClassName$ : کلاس شی
strTextCont$: محتویات textbox یافت شده

برای تست، یک List1 و Command1 را بر روی فرم قرار دهید


موفق باشید