-
نقل قول: بدست آوردن GetElementById یک شی در web browser
ممنون از همکاریتون
ولی این روش رو میدانستم
فقط مشکل این است
در پورتالی که من لازم است توسط مرورگز دست نوشته خودم باز کنم
میبایست یک سری آدرس عکس را به مرورگر بدهم تا آپلود کند
روش کلیک کردن روی شی را میدانم
ولی وقتی به کنترل آپلود فایل میرسم نمی دانم چه مقداری به کنترل آپلود فایل بدهم تا عکس مورد نظر من ادرس انتخابی داخل کنترل شود
هر روشی امتحان می کنم متاسفانه جواب نمی دهد
باتشکر
-
نقل قول: بدست آوردن GetElementById یک شی در web browser
سلام. برادر چرا تو تاپیک من پست میزنی ؟
دوستان کسی نفهمید چطور میشه اینکارو انجام داد ؟
-
نقل قول: بدست آوردن GetElementById یک شی در web browser
نقل قول:
نوشته شده توسط
ho3ein.3ven
دست شما درد نکنه . ولی این مشکلم حل شد . الان فقط مشکلم اوکی کردن پیغامی هست که توسط وب باز می شه.
نقل قول:
نوشته شده توسط
ho3ein.3ven
سلام. برادر چرا تو تاپیک من پست میزنی ؟
دوستان کسی نفهمید چطور میشه اینکارو انجام داد ؟
شرمنده تاپیک یکم طولانی شده، من نفهمیدم مشکل کجاست؟
-
نقل قول: بدست آوردن GetElementById یک شی در web browser
نقل قول:
نوشته شده توسط
ho3ein.3ven
خب پس الان چکار کنم ؟
بفرمایید :
Private Declare Function FindWindowEx Lib "user32" Alias "FindWindowExA" (ByVal hWnd1 As Long, ByVal hWnd2 As Long, ByVal lpsz1 As String, ByVal lpsz2 As String) As Long
Private Sub Form_Load()
Dim WBhwnd As Long
WBhwnd = FindWindowEx(Me.hwnd, 0, "Shell Embedding", vbNullString)
MsgBox WBhwnd
End Sub
-
نقل قول: بدست آوردن GetElementById یک شی در web browser
سلام. اگه میشه یه توضیح بده.
چون من الان وب بروزر رو جایگزین کردم باز ارور داد.
هندل فرم رو 0 میده . بعد اینکه اگه هندل رو بدست آوردیم چطوری اینتر رو ارسال کنیم.
-
نقل قول: بدست آوردن GetElementById یک شی در web browser
نه شما چیزی رو جایگذین نکن.
متغیر WBHwnd هندل وب بروزری که در برنامه استفاده کردی رو بر می گردونه.
و این متغر رو جایگذین کد جناب واژدی کن.
-
نقل قول: بدست آوردن GetElementById یک شی در web browser
سلام . ممنون از شما
متاسفانه بازم جواب نمیده .
Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As String) As Long
Private Const WM_KEYDOWN = &H100
Private Const WM_KEYUP = &H101
Dim p As Boolean
Private Const WM_CHAR = &H102
Private Declare Function FindWindowEx Lib "user32" Alias "FindWindowExA" (ByVal hWnd1 As Long, ByVal hWnd2 As Long, ByVal lpsz1 As String, ByVal lpsz2 As String) As Long
Private Sub SendEnterKey(lHwnd&)
SendMessage lHwnd&, WM_KEYDOWN, 0&, 0
SendMessage lHwnd&, WM_CHAR, vbKeyReturn, 0
SendMessage lHwnd&, WM_KEYUP, 0&, 0
End Sub
Private Sub Command2_Click()
Dim WBhwnd As Long
WBhwnd = FindWindowEx(Me.hwnd, 0, "Shell Embedding", vbNullString)
Call SendEnterKey(WBhwnd)
End Sub
-
نقل قول: بدست آوردن GetElementById یک شی در web browser
سلام . متوجه نشدید مشکل از کجاست ؟
-
نقل قول: بدست آوردن GetElementById یک شی در web browser
با سلام . کدی که من نوشتم هندل وب بروزر رو بر می گردونه ولی احتمالا کاری که شما می خواین انجام بدین بدین روش عملی نیست.
میشه بگین دقیقا مشکلتون چیه شاید راه دیگری پیدا کردیم.
-
نقل قول: بدست آوردن GetElementById یک شی در web browser
سلام
ببین من می خوام کلید اینتر رو به وب بروزر ارسال کنم . با دستور سند کیز اینتر به سیستم عامل ارسال میشه . چون برنامه من یه کار رو مرتبا تکرار می کنه اگر برنامه مینیمایز بشه کلید اینتر به برنامه ارسال نمیشه و دیگه برنامه کار نمی کنه . روش دیگری هم بود که اینتر به فرم ارسال میشد در این حالت هم روی وب بروزر هیچ تاثیری نداشت.حالا من یه روش می خوام که وقتی هم که برنامه مینیمایز باشه کلید اینتر به وب بروزر ارسال بشه .
با تشکر
-
نقل قول: بدست آوردن GetElementById یک شی در web browser
میتونم بپرسم چرا می خواین کلید اینتر رو به وب بروزر ارسال کنید ؟
-
نقل قول: بدست آوردن GetElementById یک شی در web browser
ببین تو صفحه وب می خوام یک سری اطلاعات رو ثبت گنم و برای ثبت اون باید روی یک دکمه کلیک کنم که اون دکمه المنت نداره پس باید با کلید اینتر روی اوون دکمه کلیک کنم.
-
نقل قول: بدست آوردن GetElementById یک شی در web browser
نقل قول:
نوشته شده توسط
ho3ein.3ven
برای ثبت اون باید روی یک دکمه کلیک کنم که اون دکمه المنت نداره پس باید با کلید اینتر روی اوون دکمه کلیک کنم.
چرا باید ؟؟؟:عصبانی::عصبانی::عصبانی:
برای تایید یک فرم الزاما نیازی ندارید روی دکمه تایید کلیک کنید.
بفرمایید :
web.Document.Forms(0).submit
بدین روش می تونید یک فرم رو تایید کنید.
-
نقل قول: بدست آوردن GetElementById یک شی در web browser
داداش دست درد نکنه . من از خود شما تو همین تاپیک سوال کردم شما خودتون گفتین باید اینتر رو بفرستی منم دیگه...
حالا داداش تو این کد که گذاشتی جای 0 باید چی بزارم ؟
-
نقل قول: بدست آوردن GetElementById یک شی در web browser
نقل قول:
نوشته شده توسط
ho3ein.3ven
من از خود شما تو همین تاپیک سوال کردم شما خودتون گفتین باید اینتر رو بفرستی منم دیگه...
حالا داداش تو این کد که گذاشتی جای 0 باید چی بزارم ؟
میشه بگید توی این تاپیک من کی یه همچین چیزی گفتم ؟
0 شماره فرمه و معمولا توی هر صفحه وب 1 فرم هست ولی اگر بیشتر بود به ترتیب اضافه میشه.
یعنی فرم 2 میشه 1 و فرم 3 میشه 2 و ...
-
نقل قول: بدست آوردن GetElementById یک شی در web browser
داداش دستت درد نکنه . والا دقیق یادم نیست شما گفتی یا جناب واژدی گفتن به هر حال ممنون جواب داد
-
نقل قول: بدست آوردن GetElementById یک شی در web browser
نقل قول:
نوشته شده توسط
ho3ein.3ven
. . . من از خود شما تو همین تاپیک سوال کردم شما خودتون گفتین باید اینتر رو بفرستی منم دیگه...
.
.
.
نقل قول:
نوشته شده توسط
ho3ein.3ven
. . . والا دقیق یادم نیست شما گفتی یا جناب واژدی گفتن به هر حال ممنون جواب داد
سلام علیکم
واقعیتش بنده مطلبی به اینصورت عرض نکرده ام، شاید منظورتان پست #18 است:
نقل قول:
نوشته شده توسط
محسن واژدی
سلام علیکم
برای کلیک و هر عمل دیگری بر روی اشیائی که id و name ندارند میتوانیم از indexشون استفاده کنیم، برای مثال اگر در web-browser به گوگل وارد شده و متنی را تایپ کنیم، برای فشردن دکمه جستجو (اگه id,name نداشته باشه نهایتا از index برای ارسال کلیک استفاده می کنیم):
Private Sub Form_Load()
WebBrowser1.Navigate "http://google.com"
End Sub
Private Sub Command1_Click()
WebBrowser1.Document.Forms(0).elements(6).Click
End Sub
موفق باشید
که در این مورد هم راه حل ارائه شده در مورد کلیک بر روی اشیائی است که id و name ندارند (مانند bottonها)، نه ارسال فرم
موفق باشید
-
نقل قول: بدست آوردن GetElementById یک شی در web browser
سلام . آقا من از همگی معذرت می خوام . MohammadGh2011 ایشون در پست 10 گفتن . امیدوارم ایشون هم از دست من ناراحت نشن.
به هر حال ممنون از همگی
-
نقل قول: بدست آوردن GetElementById یک شی در web browser
سلام مجدد.
جناب واژدی کد هایی که در پست 29 قرار دادید برای بستن یک پیغام رو من روی پروژم گذاشتم و جواب داد ولی بعد از اینکه برنامه رو کامپایل کردم جواب نمیده مشکل از کجاست ؟
-
نقل قول: بدست آوردن GetElementById یک شی در web browser
نقل قول:
نوشته شده توسط
ho3ein.3ven
سلام مجدد.
جناب واژدی کد هایی که در پست 29 قرار دادید برای بستن یک پیغام رو من روی پروژم گذاشتم و جواب داد ولی بعد از اینکه برنامه رو کامپایل کردم جواب نمیده مشکل از کجاست ؟
سلام علیکم
از اونجایی که تابع AutoCloseMessageTimer عنوان پنجره را جستجو میکند ممکنه عنوان پیام باز شده غیر از عنوانی باشه که در این تابع مشخص کرده ایم، چون به کدهاتون دسترسی ندارم نمیتوانم بهتر از این راهنمایی کنم!
موفق باشید
-
نقل قول: بدست آوردن GetElementById یک شی در web browser
سلام .ببین عنوان پنجره هیچ فرقی نمی کنه . چون برنامه وقتی که با خود وی بی اجرا می کنم هیچ مشکلی نداره ولی وقتی کامپایل می کنم پنجره بسته نمی شه.
-
نقل قول: بدست آوردن GetElementById یک شی در web browser
سلام علیکم
وقتی پیام را در زمان طراحی نمایش دهیم با برنامه کامپایل شده بسته نمیشه اما در زمانی که هردوتا برنامه کمپایل شده باشن بدون هیچ مشکلی پیام بسته میشه
موفق باشید
-
نقل قول: بدست آوردن GetElementById یک شی در web browser
ممنون از شما جواب گرفتم.
میگم راهی وجود داره برای چک کردن اینکه آیا وب لود شده یا نه ؟ این روشی که شما گفتین بعضی وقتا وب کامل لود شده ولی دستورات رو اجرا نمی کنه . توی برنامه من سرعت خیلی مهمه . روش دیگه ای وجود داره که مثلا چک کنه ببینه اگر فلان المنت توی وب لود شده باشه اونوقت دستورات رو اجرا کنه ؟
-
نقل قول: بدست آوردن GetElementById یک شی در web browser
نقل قول:
راهی وجود داره برای چک کردن اینکه آیا وب لود شده یا نه ؟
پاسخ آقای قائم پناه: https://barnamenevis.org/showthread.p...=1#post1536949
با این کد هم میتوانیم چک کنیم که آیا صفحه کاملا بار شده یا خیر (البته شاید در تایمر مناسب نباشه):
کد HTML:
Private Sub Command1_Click()
If LCase(WebBrowser1.Document.Body.parentElement.innerHTML) Like "*</body>" Then
MsgBox "Complete loaded...", vbInformation
End If
End Sub
نقل قول:
روش دیگه ای وجود داره که مثلا چک کنه ببینه اگر فلان المنت توی وب لود شده باشه اونوقت دستورات رو اجرا کنه ؟
میتوانیم خصوصیاتی از عنصر مورد نظر به عنوان مثال نام را در صفحه بار شده چک کنیم
موفق باشید
-
نقل قول: بدست آوردن GetElementById یک شی در web browser
نقل قول:
نوشته شده توسط
محسن واژدی
پاسخ آقای قائم پناه:
https://barnamenevis.org/showthread.php?348445
با این کد هم میتوانیم چک کنیم که آیا صفحه کاملا بار شده یا خیر (البته شاید در تایمر مناسب نباشه):
کد HTML:
Private Sub Command1_Click()
If LCase(WebBrowser1.Document.Body.parentElement.innerHTML) Like "*</body>" Then
MsgBox "Complete loaded...", vbInformation
End If
End Sub
میتوانیم خصوصیاتی از عنصر مورد نظر به عنوان مثال نام را در صفحه بار شده چک کنیم
موفق باشید
میشه در مورد این کد بیشتر توضیح بدین آخه ارور میده . ممنون
-
نقل قول: بدست آوردن GetElementById یک شی در web browser
سلام
کد را به این صورت زیر تغییر بدین:
کد HTML:
Private Sub Command1_Click()
On Error Resume Next
If LCase(WebBrowser1.Document.Body.parentElement.innerHTML) Like "*</body>" Then
If Err.Number = 0 Then MsgBox "Complete loaded...", vbInformation
End If
End Sub
البته راه دیگه هم استفاده از WebBrowser1.Busy است (اگر صفحه آماده باشد مقدار False در غیر اینصورت True را برمیگرداند (اما چون ممکن است برخی وقت ها تصویر و... بارگذاری شود دوباره مقدار برگشتی True میشود) )
موفق باشید
-
نقل قول: بدست آوردن GetElementById یک شی در web browser
نقل قول:
نوشته شده توسط
محسن واژدی
سلام
کد را به این صورت زیر تغییر بدین:
کد HTML:
Private Sub Command1_Click()
On Error Resume Next
If LCase(WebBrowser1.Document.Body.parentElement.innerHTML) Like "*</body>" Then
If Err.Number = 0 Then MsgBox "Complete loaded...", vbInformation
End If
End Sub
البته راه دیگه هم استفاده از WebBrowser1.Busy است (اگر صفحه آماده باشد مقدار False در غیر اینصورت True را برمیگرداند (اما چون ممکن است برخی وقت ها تصویر و... بارگذاری شود دوباره مقدار برگشتی True میشود) )
موفق باشید
سلام واقعا ممنون از شما . ولی اینجوری که شما گفتی انجام دادم زیاد خوب نیود . کد هام رو به این صورت تغییر دادم :
Private Sub Timer2_Timer()
On Error Resume Next
w.Document.GetElementById("username").Value = "gdgdfgd"
w.Document.GetElementById("password").Value = "dsdal"
w.Document.GetElementById("submit").Click
If Err.Number = 0 Then
Timer2.Enabled = False
End If
End Sub
اینجوری جواب داد
ممنون از شما
-
نقل قول: بدست آوردن GetElementById یک شی در web browser
نقل قول:
نوشته شده توسط
ho3ein.3ven
سلام واقعا ممنون از شما . ولی اینجوری که شما گفتی انجام دادم زیاد خوب نیود . کد هام رو به این صورت تغییر دادم :
Private Sub Timer2_Timer()
On Error Resume Next
w.Document.GetElementById("username").Value = "gdgdfgd"
w.Document.GetElementById("password").Value = "dsdal"
w.Document.GetElementById("submit").Click
If Err.Number = 0 Then
Timer2.Enabled = False
End If
End Sub
اینجوری جواب داد
ممنون از شما
با سلام :
اگر برنامه رو برای خودت میسازی که هیچی ولی اگر یه برنامه عمومی میشه یا می خوای در مکان های مختلف با سرعت اینترنت های مختلف برنامه رو اجرا کنی از این روش استفاده نکن یا باید interval تایمرت زیاد باشه.
اگر اینتروال تایمرت کمتر از وقتی باشه که صفحه submit شده و شروع به بارگزاری دوباره کند صفحه توی یه loop می افته یعنی فرمو پر میکنه و فرم رو ارسال میکنه و قبل از این که فرم کامل ارسال شه و صفحه جدید بارگزاری شه دوباره فرم رو پر میکنه و ارسال میکنه که یهنی هیچ وقت ارسال نمیشه. ( امیدوارم فهمیده باشی )
-
نقل قول: بدست آوردن GetElementById یک شی در web browser
سلام دست درد نکنه راهنمایی کردی . چندین بار همین مشکلی که میگی برام پیش اومد . ولی در این مورد مشکل خاصی پیش نیومد چون وقتی که بدون ارور برنامه اجرا میشه تایمر غیر فعال میشه و دیگه دستورات رو اجرا نمی کنه . اینترول تایمر هم بر روی 1 .
بازم ممنون از اینکه راهنمایی کردی .
-
نقل قول: بدست آوردن GetElementById یک شی در web browser
سلام . دوستان کسی راهی برای مخفی کردن وب بروزر داره ؟ آخه وقتی وب بروزر visible=false قرار میگیره اصلا کار نمی کنه . و وقتی هم که اون رو خارج از محدوده فرم قرار میدم سرعتش خیلی پایین میاد . برنامه رو هم کامپیال کردم . حالا راهی به غیر از اینا سراغ داره که کاربر وب بروزر رو نبینه و سرعتش هم پایید نیاد ؟
با تشکر از همگی
-
نقل قول: بدست آوردن GetElementById یک شی در web browser
نقل قول:
نوشته شده توسط
ho3ein.3ven
سلام . دوستان کسی راهی برای مخفی کردن وب بروزر داره ؟ آخه وقتی وب بروزر visible=false قرار میگیره اصلا کار نمی کنه . و وقتی هم که اون رو خارج از محدوده فرم قرار میدم سرعتش خیلی پایین میاد . برنامه رو هم کامپیال کردم . حالا راهی به غیر از اینا سراغ داره که کاربر وب بروزر رو نبینه و سرعتش هم پایید نیاد ؟
با تشکر از همگی
سلام علیکم
w,h,x,y را مطابق 0 قرار بدهیم
WebBrowser1.Move 0, 0, 0, 0
موفق باشید
-
نقل قول: بدست آوردن GetElementById یک شی در web browser
نقل قول:
نوشته شده توسط
ho3ein.3ven
سلام . دوستان کسی راهی برای مخفی کردن وب بروزر داره ؟ آخه وقتی وب بروزر visible=false قرار میگیره اصلا کار نمی کنه . و وقتی هم که اون رو خارج از محدوده فرم قرار میدم سرعتش خیلی پایین میاد . برنامه رو هم کامپیال کردم . حالا راهی به غیر از اینا سراغ داره که کاربر وب بروزر رو نبینه و سرعتش هم پایید نیاد ؟
با تشکر از همگی
با اجازه جناب واژدی :
روش دوم : می تونی یه پیکچر باکس بندازی روش و بردرشو برداری.