PDA

View Full Version : تایپ کردن در تکست باکس web browser



oYaMaa
پنج شنبه 17 شهریور 1390, 12:38 عصر
سلام دوستان

من داخل فرم برنامم یه web browser دارم که توش یه صفحه ای رو لود کردن که یه تکست باکس داره و من می خوام که داخل اون تکست باکس رو که تو صفحه اینترنتیه از یه تکست باکس که تو فرم برنامه هست پر کنم.

یه روشی هست که می یایم میگیم:

WebBrowser1.Document.Forms(0).elements("").Value = Text1.Text


خوب من این روش رو نمیخوام.میخوام که برنامه بره روی web Browser و اون تکست باکس رو انتخاب کنه و متن داخل تکست باکسی که تو فرم هست بذاره توش.درست مثل اینکه خود انسان این کاره می کنه.

حالا کسی می دونه چطوری؟

ramzdar
پنج شنبه 17 شهریور 1390, 13:51 عصر
خب این کد هم که همین کار رو میکنه
این روش هم هست
Web1.Document.All("Esme_Texbox_Dar_Safheye_Interneti").Value = Text1
البته بستگی به سورس صفحه داره
اگه میشه آدرس صفحه رو بده که بهتر بتونیم کمکت کنیم

oYaMaa
پنج شنبه 17 شهریور 1390, 20:00 عصر
خب این کد هم که همین کار رو میکنه
این روش هم هست
Web1.Document.All("Esme_Texbox_Dar_Safheye_Interneti").Value = Text1
البته بستگی به سورس صفحه داره
اگه میشه آدرس صفحه رو بده که بهتر بتونیم کمکت کنیم

دوست عزیز ممنون که جواب دادی.
اما من خودم این روش رو گفتم.خوب اگه می خواستم از این قبیل روش ها استفاده کنم که دیگه چرا تاپیک زدم؟!:متعجب:

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

دوستان و اساتید محترم اگه راهی میدونن لطف کنن بگن... ممنون:لبخندساده:

maniaf69
جمعه 18 شهریور 1390, 15:03 عصر
دوست عزیز تاپیک های زیادی اینجوری هست اگه یکم می گشتی پیدا میکردی
از کد زیر استفاده کن
WebBrowser1.Document.getElementById("Control name").innertext = "text"

موفق باشید

maniaf69
جمعه 18 شهریور 1390, 15:15 عصر
دوست عزیز تاپیک های زیادی اینجوری هست اگه یکم می گشتی پیدا میکردی
از کد زیر استفاده کن
WebBrowser1.Document.getElementById("Control name").innertext = "text"

موفق باشید

just4froum
جمعه 18 شهریور 1390, 22:35 عصر
با سلام :

من واقعا نمیدونم شما برای چی می خوای این کارو بکنی ولی اگه میخوای خیلی شبیه انسان باشه میتونی:

اول متنتو به حافظه ی clipboard بدی بعد از کد زیر استفاده کن تا textbox تو webbrowser انتخاب بشه
x = WebBrowser1.Document.all("").focus()
بعد هم میتونی با تابع sendkeys پیستش کنی
sendkeys "^v"
که همون کار cntrl + V رو انجام میده

موفق باشی .

ramzdar
شنبه 19 شهریور 1390, 08:28 صبح
می خوام یه جویرایی مثل کار خود انسان باشه.که موس رو می بره روی تکست باکس و تایپ میکنه.
این میشه ماکرو
میتونی از برنامه های ماکرو استفاده کنی.
من که واقعاً موندم چرا میخوای از این روش استفاده کنی.

oYaMaa
شنبه 19 شهریور 1390, 18:54 عصر
دوستان یه سوال دیگه هم داشتم...
چطور میشه داخل web browser حرکت کنیم.یعنی بعد اینکه با اون روش تکست باکس رو انتخاب کردیم.مثل اینکه دکمه Tab رو میزنیم و شی های دیگه ای که تو اون صفحه هست رو به ترتیب انتخاب می کنیم عمل کنه؟

محسن واژدی
شنبه 19 شهریور 1390, 19:16 عصر
دوستان یه سوال دیگه هم داشتم...
چطور میشه داخل web browser حرکت کنیم.یعنی بعد اینکه با اون روش تکست باکس رو انتخاب کردیم.مثل اینکه دکمه Tab رو میزنیم و شی های دیگه ای که تو اون صفحه هست رو به ترتیب انتخاب می کنیم عمل کنه؟
سلام
از کد زیر برای ارسال Tab استفاده کنید:

WebBrowser1.Document.All("us").focus
SendKeys "{TAB}"

موفق باشید

oYaMaa
شنبه 19 شهریور 1390, 22:45 عصر
سلام
از کد زیر برای ارسال Tab استفاده کنید:

WebBrowser1.Document.All("us").focus
SendKeys "{TAB}"

موفق باشید

عزیز این کدتون واسه من عمل نکرد.حالا نمی دونم ایراد از کجاست؟!

اما من کدی می خوام که مثلا 2 یا 3 تا شی رو رد کنه و بره سراغ شی یا تکست باکس مورد نظر...
حالا کسی می دونه چطوری؟

just4froum
شنبه 19 شهریور 1390, 23:04 عصر
کد باید درست باشه البته یکم توضیح :

ببین با کد زیر میتونی یک شی رو انتخاب کنی به عنوان مثال textbox 1 رو البته باید id اون رو از سورس صفحه بدست بیاری و بجای IDCode در کد پایید بزاری.

x = WebBrowser1.Document.All("IDCode").focus()

با این روش می تونی همه ی شی هایی رو که می خوای id شون رو پیدا کنی بعد استفاده کنی.

و کد دوم هم مثل این می مونه که شما کلید tab رو زده باشید که در این صورت به شی بعدی میره و می تونید چند بار از این کد استفاده کنید تا شی مورد نظر شما انتخاب شود

موفق باشید

oYaMaa
یک شنبه 20 شهریور 1390, 16:04 عصر
دوستان کد های sendkey تو ویندوز های مختلف تفاوت دارند؟! من کد های ارسال Ctrl + V و Tab رو تو ویندوز ویستا تست کردم اما جواب نداد.تو ویندوز ایکس پی جواب میده! اما تو این نه! اگه کد هاش فرق دارن لطفا بگیدشون و بگید که چکار باید کرد تا اگه برنامه در ویندوز ایکس پی اجرا شد اینطور sendkey کنه و اگه تو ویستا اجرا شد طوره دیگه... ممنون

محسن واژدی
یک شنبه 20 شهریور 1390, 16:48 عصر
سلام

از APIی keybd_event بجای SendKeys استفاده کنید
ابتدا توابع زیر را در مادول فرم کپی کنید:


Option Explicit
Private Const VK_CONTROL As Long = &H11
Private Const VK_TAB = 9
Private Const KEYEVENTF_EXTENDEDKEY = &H1
Private Const KEYEVENTF_KEYUP = &H2
Private Declare Sub keybd_event Lib "user32.dll" (ByVal bVk As Byte, ByVal bScan As Byte, ByVal dwFlags As Long, ByVal dwExtraInfo As Long)

برای ارسال Tab کد زیر:


keybd_event VK_TAB, 0, 0, 0
keybd_event VK_TAB, 0, KEYEVENTF_KEYUP, 0

و برای ارسال Ctrl+V هم از کد زیر استفاده کنید:


keybd_event VK_CONTROL, 0, 0, 0
keybd_event vbKeyV, 0, 0, 0
keybd_event VK_CONTROL, 0, KEYEVENTF_KEYUP, 0
keybd_event vbKeyV, 0, KEYEVENTF_KEYUP, 0


موفق باشید

oYaMaa
چهارشنبه 19 مهر 1391, 17:59 عصر
سلام علیکم...!
بعد از یک سال باز واسه یه سوال تایپیک رو زنده میکنم تا تایپیکه اضافی ایجاد نشه.

دوستان به همین روش بالا چطور دکمه END رو ارسال کنم؟

محسن واژدی
چهارشنبه 19 مهر 1391, 18:54 عصر
سلام علیکم...!
بعد از یک سال باز واسه یه سوال تایپیک رو زنده میکنم تا تایپیکه اضافی ایجاد نشه.

دوستان به همین روش بالا چطور دکمه END رو ارسال کنم؟

سلام علیکم
keybd_event vbKeyEnd, 0, 0, 0
keybd_event vbKeyEnd, 0, KEYEVENTF_KEYUP, 0

موفق باشید