PDA

View Full Version : سوال: ثبت اطلاعات يك فرم ويندوزي در يك فرم وب



reza.bn2005
جمعه 06 شهریور 1388, 15:37 عصر
سلام
برنامه اي داريم كه دوتا Text Box داره -يكي براي نام و ديگري نام خانوادگي- و يك سايت داريم كه سه تا Text Box داره-نام و نام خانوادگي و شماره تلفن-
ميخوام برنامه را طوري بنويسم كه بعد از پركردن فيلدهاي برنامه و زدن دكمه ثبت، اطلاعات در Text Box مربوطه در سايت قرار گرفته و در سايت ذخيره شود؟
براي ساده تر شدن موضوع : فرض كنيد مي خواهيم يك ايميل تو Yahoo! بسازيم اما از طريق برنامه خودمون؟؟؟

EhsanAvr
جمعه 06 شهریور 1388, 20:44 عصر
سلام.راستشو بگو ببینم میخوای چیکار کنی؟:متفکر:
برای این کار من یه راهشو بلدم که خیلی راحته و صد در صد هم جواب میده!
یه کنترل Webbrowser بزار رو فرم و اونو مخفی کن.بعد آدرس صفحتو بهش بده و وقتی که صفحه کاملا لود شد به کنترل های داخل صفحه مقدار بده و روی دکمه ی پایانی کلیک کن. مثلا میخوایم بریم بلاگفا و اطلاعات صفحه ی ورودی رو پر کنیم. یعد از اینکه آدرس بلاگفا رو به کنترل دادیم،این جوری مینویسیم:


HtmlElementCollection elc = this.wb1.Document.GetElementsByTagName("input");
for (int i = 0; i < 10; i++)
{
foreach (HtmlElement el in elc)
{
System.Windows.Forms.HtmlDocument DOC = this.wb1.Document;
DOC.All["Username"].SetAttribute("value", "Blogfa User");
DOC.All["Password"].SetAttribute("value", "Your Password");
el.InvokeMember("click");
}
}

reza.bn2005
شنبه 07 شهریور 1388, 14:19 عصر
دوست عزيز خيلي ممنون از راهنمايي تون
من راستش واسه يك برنامه مي خوام كه بشه اطلاعات يك سايتي رو بشه از طريق فرم ويندوز وارد كرد.
ولي هنگام اجراي برنامه در خط

HtmlElementCollection elc = this.webBrowser1.Document.GetElementsByTagName("input");


خطا ميگيره

( Object reference not set to an instance of an object. )
علت از چيه؟؟؟

در ضمن اين خط از برنامه واسه چيه؟؟
DOC.All["Username"].SetAttribute("value", "username);
ممنون :قلب:

EhsanAvr
شنبه 07 شهریور 1388, 16:34 عصر
سلام .
در مورد خطا یه کم بیشتر توضیح بده.ولی فکر کنم اگه webbrowser خودتو چک کنی که ببینی اسمش با اونی که نوشتی تطبیق داره یا نه درست بشه.


ر ضمن اين خط از برنامه واسه چيه؟؟
DOC.All["Username"].SetAttribute("value", "username);
ممنون :قلب:

تو این خط از برنامه،مقدار Value یه TextBox با نام Username برابر username قرار میگیره.
یه سورس نمونه برات نوشتم خودت ببین.

reza.bn2005
شنبه 07 شهریور 1388, 17:50 عصر
سلام
خيلي ممنون از برنامه تون برنامه شما كار ميكنه ولي من برنامه شما رو دقيقا كپي مي كنم ولي باز خطا مي دهد.
Object reference not set to an instance of an object
ولي سايت LOad ميشه ها اما در اين خط از برنامه خطاي بالا رو مي دهد.
DOC.All["Username"].SetAttribute("value", "username");

آيا اين مربوط به 2008 يا 2005 بودن ويژوال استوديو نداره؟؟؟؟

reza.bn2005
شنبه 07 شهریور 1388, 18:37 عصر
سلام
اون مشكل فقط زماني پيش مياد كه وقتي به Gmail وصل ميشم.
بهتره بگم فقط براي Blogfa كار مي كنه.
من حدس ميزنم تو اون خط از كد كه يك مقداري رو به textbox اي با نام username ميديم اون textbox با نام UserName تو اون سايت وجود نداره.
به نظر شما علت چيه؟؟

EhsanAvr
یک شنبه 08 شهریور 1388, 00:28 صبح
:عصبانی++::عصبانی++::عصبانی++:: صبانی++:
مگه من نگفتم که برنامه مقدار رو تو یه TextBox با نام Username میریزه؟؟؟؟
تو بلاگفا اسم TextBox ی که نام کاربری رو وارد می کنیم Username است اما تو Gmail اسمش فرق می کنه!
باید بری سورس کد صفحه ی Gmail رو ببینی و بفهمی که اسم هر کنترل روی اون چیه.مثلا اسم دکمه ای که در صفحه ی بلاگفا وجود داره btnsubmit است. سورس کد صفحه ی مورد نظر رو ببین و اسم کنترل رو در برنامه تغییر بده.

reza.bn2005
یک شنبه 08 شهریور 1388, 00:30 صبح
آقا خيلي ممنون

reza.bn2005
یک شنبه 08 شهریور 1388, 17:00 عصر
سلام
1 - اگر ما چندتا button روي سايت داشته باشيم چطوري مي تونيم يكي از اون ها روانتخاب و كليك كنيم؟؟؟؟
2 - اگر سايت يك تصوير داشت چطوري مي تونيم اون تصوير رو از سايت بوسيله نرم افزار خودمون دريافت كنيم.

EhsanAvr
یک شنبه 08 شهریور 1388, 17:11 عصر
سلام
1 - اگر ما چندتا button روي سايت داشته باشيم چطوري مي تونيم يكي از اون ها روانتخاب و كليك كنيم؟؟؟؟
2 - اگر سايت يك تصوير داشت چطوري مي تونيم اون تصوير رو از سايت بوسيله نرم افزار خودمون دريافت كنيم.
سلام.
راستش من هنوز دنبال این مطلب هستم. و حتی یه تاپیک در مورد کار با Webbrowser زدم ولی هیشکی نیومد جواب بده:افسرده::افسرده:
اگه خودت هم مطالبی در این زمینه پیدا کردی ما رو هم بی خبر نزار:قلب:

reza.bn2005
یک شنبه 08 شهریور 1388, 17:20 عصر
خيلي از لطفت ممنون

reza.bn2005
جمعه 13 شهریور 1388, 14:40 عصر
سلام
از دوستان اگر كسي هست لطفا در اين مورد كمكي بكنه:قلب: