PDA

View Full Version : سوالی راجع به رد و بدل کردن داده و اتصال به صفحات وب از طریق فرم اپلیکیشن



ashe405
پنج شنبه 05 آذر 1394, 12:53 عصر
سلام
اگه کسی سوالم رو در مکان اشتباه پرسیدم ممنون میشم راهنمایی کنین کجا بپرسم یا سرچ کنم که به نتیجه برسم

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

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

ممنون

drsina
پنج شنبه 05 آذر 1394, 20:40 عصر
اگر کارت فقط ایمیل هست که هم یاهو ، هم جیمیل هم هر چیزدیگه سرویس smtp داره که با اون هم میشه ایمیلارو خوند هم ایمیل فرستاد هم هرچیز دیگه ... توو مایه های کاری که outlook انجام میده.
کار دیگه اینه که میتونی سورس وب رو دانلود کنی ،
using System.Net;//...
using (WebClient client = new WebClient ()) // WebClient class inherits IDisposable
{
client.DownloadFile("http://yoursite.com/page.html", @"C:\localfile.html");


// Or you can get the file content without saving it:
string htmlCode = client.DownloadString("http://yoursite.com/page.html");
//...
}




حالا کاری که دقیقان میخوای بکنی با HTTP Request به صفحه امکان پذیره البته بستگی به سایت داره که اجازه بده به متغیرهاش مقدار بدی .
یه راه بده دیگه ای هم که هست اینه که خود صفحه رو توو یه کامپوننت webbrowser باز کنی ، از اونجا میتونی به مثلا تکست باکس ها به صورت پویا با داشتن کلاسشون مقدار بدی بعد مثلا یه باتن رو کلیک کنی ،
این مثالشو ببین :
http://stackoverflow.com/questions/24091944/how-to-get-html-textbox-value
دقیقان همین جور که مقدار رو به یه متغیر داده ، میشه اونو set کرد .

ashe405
جمعه 06 آذر 1394, 15:23 عصر
اگر کارت فقط ایمیل هست که هم یاهو ، هم جیمیل هم هر چیزدیگه سرویس smtp داره که با اون هم میشه ایمیلارو خوند هم ایمیل فرستاد هم هرچیز دیگه ... توو مایه های کاری که outlook انجام میده.


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

یه کاری که بس تو ایدم انجام بدم اینه که مثلا تو یه صفحه وب بس برم مثلا یه سری داده توی فلان تکس باکسش وارد کنم مثلا وارد اکانت کاربری مثل همین انجمن بشم و بعد یه سری اطلاعات از بعضی محتویات صفحه جدید بردارم و مثالی مثل ایمیل زدم که قابل لمس باشه
یه برنامه میخوام که مثلا یه مرورگر توی موزیلا که در سیستمی که برنامه نصب هست وارد سایت برنامه نویس بشه یوزر پس کاربری که داخل ویندوز فرم قسمت خاصش نوشته ایم و باتومش زدیم وارد بشه و بره داخل اکانت مثلا صفحه کاربریش فلان پیامی که واسه اون اکانت نوشته شده برداره
که این قسمت دومشو با توضیحی که دادین



// Or you can get the file content without saving it:

string htmlCode = client.DownloadString("http://yoursite.com/page.html");

که متوجه شدم ولی اینکه چطور دستور بدیم فلان صفحه رو باز کنه که با این یوزر پس وارد بشه زیاد متوجه نشدم
بازم در هر صورت خیلی ممنون چون سررشته و کمک خوبی بهم کردین سپاسگزارم گرامی
ببخشید

drsina
سه شنبه 10 آذر 1394, 19:01 عصر
سلام گرامی ممنون بابت پاسخ خوبتون که کمک خوبی بهم میکنه
فقط این قسمتی که نقل قول کردم رو متوجه نشدم چطور با سی شارپ بس این کار رو انجام بدم اگه یکم بیشتر توضیح بدین یا اینکه لینکی بزارین که مطالعه کنم ممنون میشم

برای smtp خیلی کد هست ، مشکلی که هست آنتی ویروس ها میبندنش کامل ! چون ماهیت ویروسی داره
این یه مثال کامل برای فرستادن ایمیل :
http://stackoverflow.com/questions/9201239/send-e-mail-via-smtp-using-c-sharp
اینم یکی برای دریافت ایمیل :
http://stackoverflow.com/questions/19449161/receiving-email-and-downloading-attachment-through-a-c-sharp-application
البته تستش نکردم ولی اگه کار نداد یکم جستجو کنید ، بازم کدای متنوعی میاد . یه مشکل دیگه ای که هست مثلا جیمیل به صورت پیش فرض چنین سرویسی رو نمیده و باید برای یه کامپیوتر خاص فعالش کنی ، توو یاهو و هات میل هم اگه چندبار پشت سر هم لوگین کنی اکانتت دیگه تا یه مدت کار نمیده ! البته قبلان که اینجوری بود احتمالا حالا هم همینه .:لبخند:

-------------------------------------------------------------------------------------------------------------------------

برای قسمت دوم سوالت هم مراحل هم مثال زیر رو ببین ، خودت با این توضیحات برای کار خودت پیاده سازی کن .
فقط محدودیتش اینه که توو سی شارپ فقط می تونی از IE یا Edge استفاده کنی ، تا اینجا که من میدونم چندسال پیش هیچ امکانی برای موزیلا یا کروم و اوپرا نبود ، احتمالان حالا هم نیست . :ناراحت:

خب شما اول کار یه کامپوننت webbrowser به فرمت اضافه کن ،
بعد یه فایل html به صورت زیر دست کن :
<!DOCTYPE html><html>
<body>


<form action="demo_form.asp">
First name: <input type="text" name="FirstName" value="Mickey"><br>
Last name: <input type="text" name="LastName" value="Mouse"><br>
<input type="submit" value="Submit">
</form>


<p>Click the "Submit" button and the form-data will be sent to a page on the server called "demo_form.asp".</p>


</body>
</html>




حالا سایتهم دقیقا همینه ، شما یه Navigate بکن مثلا :
webBrowser1.Navigate(@"c:\users\MyUser\desktop\example.html");


برای سایت هم آدرس سایت رو به جای آدرس path بده ،
حالا یه مقدار صبر کن ، لود شه ، بعد توو مثال اچ تی ام الی که زدم کد زیر رو ران کن :
webBrowser1.Document.GetElementById("FirstName").SetAttribute("value", "barnamenevis");


الان توو کد بالا FirstName که اسم المان اچ تی ام ال هست ، رو value ش رو به barmamenevis تغیرر میدی .
دقیقان همش مثه همینه همه کاری رو میشه اینجوری کرد ، اگرم میخوای کاربر فرایند کارت رو متوجه نشه ، webroowser ت رو Hide کن.
فقط دیگه کاملا مشخصه که برای هر سایتی متفاوته ، باید از رووی سورس کد سایت الماناشو تغییر بدی .

موفق باشی :چشمک: