PDA

View Full Version : مشکل senkeys در webbrowser



niksalehi
سه شنبه 07 آذر 1391, 12:29 عصر
سلام عزیزان
میخوام روی وب براوزر دستور sendkeys رو اجرا کنم! یعنی 2 بار دکمه تب رو میخوام بزنم!
از این کد استفاده کردم اما ارور میده:
On Error Resume Next
WebBrowser.SetFocus
SendKeys "{TAB}"

لطفا راهنمایی کنید منو :متفکر:

MohammadGh2011
سه شنبه 07 آذر 1391, 13:55 عصر
سلام عزیزان
میخوام روی وب براوزر دستور sendkeys رو اجرا کنم! یعنی 2 بار دکمه تب رو میخوام بزنم!
از این کد استفاده کردم اما ارور میده:
On Error Resume Next
WebBrowser.SetFocus
SendKeys "{TAB}"

لطفا راهنمایی کنید منو :متفکر:
سلام عليکم

براي اينکه دوبار کليد تب زده بشه از دستور زير استفاده کنيد:
WebBrowser1.SetFocus
SendKeys "{TAB 2}"

موفق باشيد

niksalehi
سه شنبه 07 آذر 1391, 14:25 عصر
مشکل من 2 بار زدن نیس، مشکلم اینه که کلا تب کار نمیکنه تو وب براوزر
این ارور رو میده
run-time error '70':
permission denied

MohammadGh2011
سه شنبه 07 آذر 1391, 14:40 عصر
مشکل من 2 بار زدن نیس، مشکلم اینه که کلا تب کار نمیکنه تو وب براوزر
این ارور رو میده
run-time error '70':
permission denied
يعني شما وقتي از اين دستور استفاده ميکنيد، اين خطايي که اجازه ي دسترسي بهتون نميده رو ميده؟!:متفکر:
اگه اينطوريه،تب رو با کيبورد امتحان کنيد و يه سايت ديگه رو امتحان کنيد.

niksalehi
سه شنبه 07 آذر 1391, 14:52 عصر
بله، تب رو کیبرد کار میکنه! اما sendkeys نه!

محسن واژدی
سه شنبه 07 آذر 1391, 19:46 عصر
سلام علیکم
متاسفانه SendKeys وی بی در ویندوز 7 با شکست مواجه میشود (خطای Permission Denied میده)
تابع زیر را بررسی کنید:
Public Sub SendTab(Optional iRepeats% = 1)
Dim i%, CShell
Set CShell = CreateObject("WScript.Shell")
For i = 0 To iRepeats%
Call CShell.SendKeys(vbTab, True)
Next 'i
Set CShell = Nothing
End Sub

و یا تابع زیر:
Private Declare Function MapVirtualKey Lib "user32" Alias "MapVirtualKeyA" (ByVal wCode As Long, ByVal wMapType As Long) As Long
Private Declare Sub keybd_event Lib "user32" (ByVal bVk As Byte, ByVal bScan As Byte, ByVal dwFlags As Long, ByVal dwExtraInfo As Long)
Public Sub SendTab(Optional iRepeats% = 1)
Dim bytTab As Byte, i%
For i = 0 To iRepeats%
bytTab = MapVirtualKey(vbKeyTab, 0)
keybd_event vbKeyTab, bytTab, 0, 0
keybd_event vbKeyTab, bytTab, &H2, 0
Next 'i
End Sub


برای مثال:
Private Sub Command1_Click()
WebBrowser1.SetFocus
Call SendTab(2)
End Sub



موفق باشید

MohammadGh2011
سه شنبه 07 آذر 1391, 19:57 عصر
سلام علیکم
متاسفانه SendKeys وی بی در ویندوز 7 با شکست مواجه میشود (خطای Permission Denied میده)
تابع زیر را بررسی کنید:
Private Declare Function MapVirtualKey Lib "user32" Alias "MapVirtualKeyA" (ByVal wCode As Long, ByVal wMapType As Long) As Long
Private Declare Sub keybd_event Lib "user32" (ByVal bVk As Byte, ByVal bScan As Byte, ByVal dwFlags As Long, ByVal dwExtraInfo As Long)
Public Sub SendTab(Optional iRepeats% = 1)
Dim bytTab As Byte, i%
For i = 0 To iRepeats%
bytTab = MapVirtualKey(vbKeyTab, 0)
keybd_event vbKeyTab, bytTab, 0, 0
keybd_event vbKeyTab, bytTab, &H2, 0
Next 'i
End Sub

برای مثال:
Private Sub Command1_Click()
WebBrowser1.SetFocus
Call SendTab(2)
End Sub

موفق باشید

سلام عليکم خدمت آقاي واژدي عزيز
ويندوز من هم 7 است ولي همچين خطايي نميده.:متفکر:

محسن واژدی
سه شنبه 07 آذر 1391, 20:28 عصر
سلام عليکم خدمت آقاي واژدي عزيز
ويندوز من هم 7 است ولي همچين خطايي نميده.:متفکر:
سلام علیکم
بله، اگه UAC (User Account Settings) کاربر را بر روی Never-Notify قرار بدیم این مشکل در وی بی برطرف میشه (اما پیش فرض فعال هست)

MohammadGh2011
چهارشنبه 08 آذر 1391, 09:53 صبح
سلام علیکم
بله، اگه UAC (User Account Settings) کاربر را بر روی Never-Notify قرار بدیم این مشکل در وی بی برطرف میشه (اما پیش فرض فعال هست)
سلام
ببخشيد آقاي واژدي،من UAC رو بردم روي Always-Notify يعني تغييرش دادم ،اومدم sendkeys رو تو وي بي امتحان کردم ولي بازم جواب داد.

محسن واژدی
چهارشنبه 08 آذر 1391, 11:00 صبح
سلام
ببخشيد آقاي واژدي،من UAC رو بردم روي Always-Notify يعني تغييرش دادم ،اومدم sendkeys رو تو وي بي امتحان کردم ولي بازم جواب داد.

سلام علیکم آقای قائم پناه بزرگوار،
واقعیتش در سیستمی که من کار میکردم گزینه Default (از بالای نوار، گزینه دوم) در وی بی محدودیت دسترسی ایجاد میکرد، allways-notify که گزینه حداکثر هست باید موردی نداشته باشه البته بعد از ذخیره باید restart کنیم تا نتیجه تنظیمات uac رو ببینیم
متاسفانه ویندوز اینجا xp هست نمیتوانم تست کنم

موفق باشید

MohammadGh2011
چهارشنبه 08 آذر 1391, 11:21 صبح
سلام علیکم آقای قائم پناه بزرگوار،
واقعیتش در سیستمی که من کار میکردم گزینه Default (از بالای نوار، گزینه دوم) در وی بی محدودیت دسترسی ایجاد میکرد، allways-notify که گزینه حداکثر هست باید موردی نداشته باشه البته بعد از ذخیره باید restart کنیم تا نتیجه تنظیمات uac رو ببینیم
متاسفانه ویندوز اینجا xp هست نمیتوانم تست کنم

موفق باشید
بله جناب آقاي واژدي عزيز
همونطور که فرمودين بايد ويندوز رو Restart کنيم تا تغييرات اعمال شود.

با تشکر از شما دوست بزرگوار