PDA

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



mehrdad1991h
سه شنبه 29 مرداد 1392, 11:27 صبح
سلام
از اونجایی که این چند روز خیلی دیدم که همه دنبال این روش هستن گفتم یه اموزش مختصر قرار بدهم
امیدوارم به کار این افراد بیاید

فایل ضمیمه در این اموزش به صورت کلی تهیه شده و برای تمام وب سایت هایی که به صورت گرافیکی فیلد هایی در انها موجود باشد به همراه یک دکمه جهت ورود یا ثبت جواب میدهد

برای وب سایت هایی که ماننده صفحه ی ورود به مدیریت مودم هستن چون فیلدی ندارند این روش جواب نمیدهد روش ساده تری هست که در اینجا بحثمون نیست

توضیحات زیادی نمیدهم چون سورس را قرار دادم میتونید از خود سورس ببینید و یاد بگیرید
توضیحات آموزش :
1- ما نمیخوایم خود وب برازر را ببینیم پس بهتره با کد نویسی یه نمونه ازش ایجاد کنیم نه این که روی فرم قرارش بدیم
WebBrowser wb = new WebBrowser();

2 - ادرس مد نظر را در وب برازر فراخوانی می کنیم
wb.Navigate(uri/Link);
بهتره لینک را به صورت uri به وب برازر بدی
(نمونه :
Uri uri = new Uri(link);
)

3 - برای وب برازرت رویداد (Document Completed) تعیین کن که زمانی که لود فرم تموم شد بره و کارهایی که در رویداد بهش گفته میشه را انجام دهد
wb.DocumentCompleted += new WebBrowserDocumentCompletedEventHandler(Load_page) ;
یا اینکه بعد از فراخوانی سایت 10-15 ثانیه وقفه ایجاد کنیم فرم را sleep کنیم یا یه تایمر بزاریم 15 ثانیه صبر کنه بعد متوقف بشه و وقتی توقف کرد کارایی که میخوایم بکنیم یا اینکه تایمر بزاری هر ثانیه چک کنی ببینی لود تموم شده یا نه چمیدونم هر کاری دوست دارین دیگه ولی روش اولی که گفتم خیلی بهتر از بقیه است که رویداد را بزاریم پس خودم از همین روش استفاده میکنم

4 - حالا در رویدادی که ایجاد کردیم (در توقف تایمر یا بعد از sleep فرم یا ..... )
المنت های ورود اطلاعات(نام فیلد های ورودی) را باید بگیریم و پرشون کنیم و نهایتا ارسال کنیم
(کداش را دارین دیگه در برنامه ببینید .....)
یک نمونه :
wb.Document.GetElementById(txtEuser.Text).SetAttri bute("Value", txtuser.Text);

فقط اینجا دقت کنید که فیلد باتن را اخر از همه کلیک کنید ، نه قبل از اینکه فیلد های دیگر را پر کنید :گیج:

خوب تموم شد دیگه
بعد از کلیک وب برازر میره کارش را میکنه اگه درست وارد کرده باشین که لاگین میشین وگرنه خطا میگیرین

در این نمونه ای که قرار دادم چون اکثرا افراد مبتی این نمونه ها را میخواستن ، چندتا بحث دیگه را هم سریع اموزش دادم
به عنوان مثال :
تغییر سایز
تغییر مکان
ادد کردن کنترل ساخته شده به فرم
و.....
که فقط به یک نگاه ساده به کد ها میتونید متوجهشون بشوید

تصویری از ظاهر برنامه :

http://up.vbiran.ir/uploads/137698400218337_0zeiZDpc.png
109372

اینم سورس :
(دوستان مبتدی : قبل از دریافت سعی کنید با توجه به توضیحات داده شده خودتون شروع به کد نویسی کنید که یاد بگیرید ...!!!)
برنامه به تنهایی : Auto Login.rar
برنامه و سورس آن : Auto Login_Fill.rar

مرا از دعای خیرتان بی بهره مگذارید:قلب:
در ضمن برنامه را خودم تستش نکردم وقت نداشتم ولی مطمئنم مشکلی نداره
اگر مشکلی داشتید بگید تا راهنمایی کنم
امیدوارم به کار تعدادی از دوستان بیاید.
همگی موفق و پیروز باشید.

mohamad72
چهارشنبه 06 شهریور 1392, 15:00 عصر
خیلی عالی بود خیلی چیا یاد گرفتم ولی یه سوال داشتم
چطوری فایل exe برنامتون رو عوض کردین من هر چی تو اینترنت گشتم نتونستم راهشو پیدا کنم

mehrdad1991h
چهارشنبه 06 شهریور 1392, 17:09 عصر
خیلی عالی بود خیلی چیا یاد گرفتم ولی یه سوال داشتم
چطوری فایل exe برنامتون رو عوض کردین من هر چی تو اینترنت گشتم نتونستم راهشو پیدا کنم

فایل exe برنامه را عوض کردم ؟
یعنی چی ؟ متوجه منظورتون نمیشه ! احتمالا منظورتون این نیست که چجوری ایکن روش ست شده یا همچین چیزی ؟:متفکر:

fakhravari
چهارشنبه 06 شهریور 1392, 17:32 عصر
این چطوری استفاده میشه :متفکر:

mohamad72
چهارشنبه 06 شهریور 1392, 18:01 عصر
ببخشید اشتباه نوشتم.
اره منظورم همینه
چطوری ایکون فایل exe برنامه رو عوض کردین.
من هر کاری میکنم نمیشه

mehrdad1991h
چهارشنبه 06 شهریور 1392, 18:04 عصر
این چطوری استفاده میشه :متفکر:
نحوه ی استفاده :
در قسمت URL ادرس سایت یا صفحه ای که قرار اطلاعات در ان وارد شود (صفحه ی لاگین سایت / فرمی که میخواین اطلاعاتی ست شود درونش) را وارد میکنید
سپس همان صفحه را در وب برازر خود باز میکنید و صفحه را به صورت سورس کد مشاهده میکنید
در سورس نام فیلد هایی که اطلاعات در آن بارگذاری میگردد را پیدا میکنید (نام تکست باکس هایی که اطلاعات درونشون وارد میشوند مثل تکتست باکس ییوزر و پسورد و.... و همچنین نام کلیدی که برای لاگین کردن / ارسال اطلاعات روی آن کلیک میشود)
نام های پیدا شده را در قسمت Element name وارد میکنید

تمام شد دیگه
الان وب برازری که باز کرده بودید را ببندینش دیگه کاری باهاش نداریم
اطلاعاتی که لازم داشتیم را از وب سایت مربوطه به دست اوردیم
الان دیگه در برنامه هر نام کاربری و پسوردی داریم در قسمت لاگین ست میکنیم و روی دکمه ی لاگین کلیک میکنید میبینید که به راحتی لاگین میگردد

مثال :
URL :

http://persianblog.ir/Signin.aspx
Element Name
User :

TxtUsername
Pass :

TxtPassword
Login :

btnLogin

mehrdad1991h
چهارشنبه 06 شهریور 1392, 18:18 عصر
ببخشید اشتباه نوشتم.
اره منظورم همینه
چطوری ایکون فایل exe برنامه رو عوض کردین.
من هر کاری میکنم نمیشه

در ویژوال استودیو از منوهای بالا منوی
Project
بعد گزینه ی اخرش یعنی
nameproje_shoma Properties
در صفحه ای که باز میشه تب اول که به صورت پیش فض انتخاب هست میروید یعنی :
Application
نهایتا در این تب یدونه گروپ باکس با نام
Resources
میبینی که در اون گروپ باکس یه جا نوشته شده
Icon
که زیرش هم یدونه تکست باکس هست و جلوش یک دکمه که توش نوشته شوده ... دکمه را کلیک میکنی و ایکن مورد نظر را انتخاب میکنید
تمام

mohamad72
چهارشنبه 06 شهریور 1392, 18:35 عصر
ایول دمت گرم.
فقط یه سوال دیگه داشتم.
اگه بخوایم یه متنی رو از تو سایت برداریم و تو یه لیبل بذاریم برعکس کاری که تو این نرم افزار انجام دادی باید چی کار کنیم
اگه میشه یه مثالی هم بزنید:چشمک:
به من گفتن با html agility باید این کار و کرد ولی هر چی سرچ میکنم چیزه خوبی پیدا نمیکنم

aliagamon
چهارشنبه 06 شهریور 1392, 19:49 عصر
تمونه HTML Agility ...

fakhravari
چهارشنبه 06 شهریور 1392, 20:00 عصر
خخخخخخخخخ قشنگ بود.:لبخندساده:
تحت وب چطوری؟

mohamad72
چهارشنبه 06 شهریور 1392, 20:11 عصر
مرسی بازم عالی بود و یاد گرفتم ولی در مورد این خط میشه توضیح بدین:
"//*[@id='tbl_curr-mrkt']/tbody/tr[1]/td[2]/text()"
فهمیدم ینی چی.
ولی نمیدونم چطوری ساخته شد ینی چرا اولش دو تا اسلش و ضرب و کروشه است؟
یا حالا اگه بخوایم به یه متن عادی که تو جدول نباشه اشاره کنیم چی کار کنیم؟؟
یا اصن قاعده کلی ساخت این دستور چیه یا اصطلاحا بش چی میگن که من بتونم آموزش هاشو تو گوگل سرچ کنم؟؟؟
یا بهتر از اون یه مقاله ای چیزی اگه دارین میشه لینکشو بزارین؟؟؟

mehrdad1991h
چهارشنبه 06 شهریور 1392, 22:20 عصر
خخخخخخخخخ قشنگ بود.:لبخندساده:
تحت وب چطوری؟

عزیزم تحت وب که خیلی راحت تر میشه :)
تحت وب با چه زبانی برنامه نویسی میکنی ؟ با asp.net اگه برنامه نویسی میکنی که روشش همینه
میری المنت ها را به دست میاری و به صورت پارامتری ارسال میکنیشون
ولی اگر از php استفاده میکنی اونجا کلا یه بحث جداگانه داره خودش یه کلاس داره برای این کار
اونجا از curl استفاده میشه

باید بری خودت بشینی بخونی با توضیح های من به جایی فک نکنم برسی
نمونه ساده گذاشتم فقط برا این که افردای که نمیدونن چجوریه متوجه بشوند روش کار چیست...


مرسی بازم عالی بود و یاد گرفتم ولی در مورد این خط میشه توضیح بدین:
"//*[@id='tbl_curr-mrkt']/tbody/tr[1]/td[2]/text()"
فهمیدم ینی چی.
ولی نمیدونم چطوری ساخته شد ینی چرا اولش دو تا اسلش و ضرب و کروشه است؟
یا حالا اگه بخوایم به یه متن عادی که تو جدول نباشه اشاره کنیم چی کار کنیم؟؟
یا اصن قاعده کلی ساخت این دستور چیه یا اصطلاحا بش چی میگن که من بتونم آموزش هاشو تو گوگل سرچ کنم؟؟؟
یا بهتر از اون یه مقاله ای چیزی اگه دارین میشه لینکشو بزارین؟؟؟

من از HTML Agility تا الان استفاده نکردم
من از regex برای کاری که شما میخوای انجام بدی استفاده میکنم به نظر خودم بهتره چون نه کامپونتی اضافه میشه به برنامه نه چیزی راحت تر هستم به هر حال
روش کار با regex را من توضیح میدم براتون
با روش من اول میای وب سایتی که میخوای اطلاعات ازش دریافت کنی را میگیری (سورسش را دریافت میکنی) بعدش سورس را داری باید از داخلش قسمت مد نظر را جدا کنی که این قسمت میشه regex
نحوه کار به این صورته که یه قسمت ثابت توی متن سایت پیدا میکنی یا یک الگو برای متنت
مثال
مثلا متن من همیشه بعد از حرف سلام میاد
یا مثلا متن من همیشه بولد هستش
یا مثلا متن من همیشه در یک جدول هستش
یا.....
یه الگو پیدا میکنی دیگه
بعد با قواعد ریجکس اون متن را درستش میکنی و از این به بعد خود برنامه اون متن را نسبت به الگوی شما پیدا میکنه
حالا که متن پیدا شد دیگه قرار دادنش تو لیبل هم که کاری نداره

برای اشنایی با ریجکس به لینک های زیر مراجعه کن

نمونه و نحوه ی استفاده
http://www.dotnetperls.com/regex-match
قواعد مورد نیاز :
http://msdn.microsoft.com/en-us/library/az24scfc.aspx

sajad-kh
شنبه 05 بهمن 1392, 19:28 عصر
سورس این برنامه رو به زبان vb6 هم بگذارید خواهشا

khokhan
شنبه 05 بهمن 1392, 22:27 عصر
سورس این برنامه رو به زبان vb6 هم بگذارید خواهشا
همین پروژه بازنویسی شده به زبان VB ........

connector
دوشنبه 07 بهمن 1392, 14:14 عصر
ممنون خیلی عالی بود
فقط من با دلفی 7 کار میکنم میشه لطف کنید و نمونه همین رو که تحت دلفی 7 بشه ازش استفاده کرد بزارید؟
خیلی ممنون

Dr Saeed
دوشنبه 07 بهمن 1392, 14:41 عصر
با سلام

ممنون از اموزشتون :ایکس

من قبل از این با vb6 کار میکردم تحت شبکه حالا که زبان رو عوض کردم اومدم C# خیلی سخت شده !

سوال : چطوری میتونم مقدار های بین تگ A رو بریزم داخل تکس باکسم ؟ خیلی باهاش ور رفتم ولی خیلی با vb فرق داره نشد

حسین.کاظمی
پنج شنبه 23 مرداد 1393, 19:00 عصر
سلام
خیلی خیلی خیلی ممنونم از تک تکون ولی اگه یه وب سایت کپچر داشت باید چکار کنیم توی فرم سی شارپ، چگونه اونو اتوماتیک پر کنیم؟؟؟؟؟؟؟

plus
پنج شنبه 23 مرداد 1393, 19:42 عصر
سلام
خیلی خیلی خیلی ممنونم از تک تکون ولی اگه یه وب سایت کپچر داشت باید چکار کنیم توی فرم سی شارپ، چگونه اونو اتوماتیک پر کنیم؟؟؟؟؟؟؟
خوب فلسفه Captcha همینه که شما (کامپیوتر) نتونه به صورت خودکار اون رو پر کنه...ولی در کل راه حل این هست که تصویر رو دریافت کنید و با استفاده از روش های پردازش تصویر مقدار نمایش داده شده در تصویر رو بخونید که هرچی تصویر پیچیده تر باشه، پردازشش سخت تر و گاهی تقریبا غیر ممکنه میشه.

maaladee
دوشنبه 03 آذر 1393, 20:31 عصر
حالا اگه این Login مربوط به کانکت شدن به اینترنت خوابگاه باشه چیکار میشه کزد؟
چون اینترنت قطع باشه قاعداً این کار انجام نمیگیره با این روش

behnamgholipoor
سه شنبه 04 آذر 1393, 01:26 صبح
سلام
اگه بخوام چیزی شبیه برنامه Sticky Password بنویسم که به صورت مستقیم با مرورگر در ارتباط باشه چکار باید بکنم ؟
لطفا راهنمایی کنید

lovee20002002
سه شنبه 04 آذر 1393, 07:31 صبح
شرمنده یک سوال ساده بعد از لاگین کوکی و سیسون رو چطور حفظ کنیم که به صفحات دیگه بتونیم بریم؟ ممنون

behnamgholipoor
جمعه 07 آذر 1393, 20:48 عصر
سلام دوست عزیز
سوالم و تصحیح میکنم
آیا راهی هست بشه با کدنویسی المنت های ورودی رو از مرورگر دریافت کرد ؟

Kamyr75
جمعه 01 بهمن 1395, 15:28 عصر
سلام
فایل های ضمیمه کجاست؟

nunegandom
شنبه 02 بهمن 1395, 17:05 عصر
ممنون بخاطر بروت فورس خوبتون
برای سایت هایی که قسمت لاگینشون فقط با جاوا اسکریپت لود میشه ایده ای چیزی ندارید؟
یا از شبیه سازی موس فقط میشه استفاده کرد؟!
برا کپچا شاید بشه از Google Drive استفاده کرد
عکس رو بهش میدیم و تبدیل به نوشته میکنه ( برا کپچا های آسون ):
عکس آپلود میکنیم ، درخواست Google Doc میکنیم بعد نوشته تحویل میگیریم
اگه نشد هم که میره سمت پردازش تصویر

Amirsarani
دوشنبه 16 اسفند 1395, 18:40 عصر
سلام ببخشید این فقط فیلدی هایی که text باشه رو پر میکنه اگه بخواهیم یه فایل بصورت خودکار اپلود بشه ینی یه فایل رو مشخص کنم هردفعه اونو اپلودش کنه ایا همچین کاری میشه ؟:لبخند::لبخند: