ورود

View Full Version : سوال: کمک در طراحی یک ربات برای لاگین شدن و دانلود فایل از سایت asp



marutash
جمعه 18 اسفند 1391, 01:05 صبح
سلام به همه دوستان
برای پروژه پایان دوره، استاد ( برای اداره که خودش اونجا کار میکنه )مجبورم کرده که برنامه ای به زبان دلفی (رباتی)بنویسم که به شکل زمان بندی شده تعدادی فایل از سایتها و پروتکلهای مختلف(ftp) دانلود کنم، تنها راهنمایی استاد این بود که از کلاس webclient در سی شارپ استفاده کنم ولی برای دانلود باید user , pass برای لاگین کردن وارد نمود.
متاسفانه این استاد نمیتونه راهنماییم کنه!!:عصبانی:
تقریبا 90 درصد پروژه رو با کمک تمام برنامه نویسهای خوب و دلسوز این سایت رو نوشتم:قلب::قلب:، فقط با نمونه سایت زیر مشکل پیدا کردم
من از webbrowser استفاده میکنم مشکل من اینه که برای لاگین شدن بعد از مقدار دهی user , password نمیتونم "ورود" (submit) کنم.

<div align="right">
چطور میتونم روی دکمه "ورود" کلیک کنم؟ آیا باید کد جاوا را فراخوانی کنم یا submit معمولی ؟
دوستان اگه نمونه کد ارائه بدید ممنون میشم



101081


این هم سورس پیج مربوط به این صفحه :




<html xmlns="http://www.w3.org/1999/xhtml">
<head id="Head1"><title>
</title>
<script language="javascript" type="text/javascript">
top.window.moveTo(0,0);
if (document.all) {
top.window.resizeTo(screen.availWidth,screen.avail Height);
}
else if (document.layers||document.getElementById) {
if (top.window.outerHeight<screen.availHeight||top.window.outerWidth<screen.availWidth){
top.window.outerHeight = screen.availHeight;
top.window.outerWidth = screen.availWidth;
}
}
</script>
</head>
<body style="margin-left: 5%; margin-right: 5%; font-family: Tahoma; text-align: center" background="images/sina-bg.gif" >

<form name="form1" method="post" action="login.aspx" id="form1" style="text-align: center;">
<div>
<input type="hidden" name="__LASTFOCUS" id="__LASTFOCUS" value="" />
<input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value="/wEPDwUKMTMxNTIxOTYyNw9kFgICBA9kFgICDQ8PFgIeBFRleHQ FKNio2Ycg2KjYp9mG2qkg2LPbjNmG2Kcg2K7ZiNi0INii2YXYr 9uM2K9kZBgBBR5fX0NvbnRyb2xzUmVxdWlyZVBvc3RCYWNrS2V 5X18WAQUHQnV0dG9uMqq7rR08eXuF2ufksRrf49X71vr0" />
</div>

<script type="text/javascript">
<!--
var theForm = document.forms['form1'];
if (!theForm) {
theForm = document.form1;
}
function __doPostBack(eventTarget, eventArgument) {
if (!theForm.onsubmit || (theForm.onsubmit() != false)) {
theForm.__EVENTTARGET.value = eventTarget;
theForm.__EVENTARGUMENT.value = eventArgument;
theForm.submit();
}
}
// -->
</script>

<script src="/WebResource.axd?d=rqPUd0ID-9ecu1YmkGc3cg2&amp;t=634599008530937500" type="text/javascript"></script>

<script src="/WebResource.axd?d=6CX6fRU6mdInO2Sv1VIAfQ2&amp;t=634599 008530937500" type="text/javascript"></script>
<table border="0" cellpadding="0" cellspacing="0" style="border-right: gray thin solid;
border-top: gray thin solid; border-left: gray thin solid; border-bottom: gray thin solid;
height: 100%; background-color: #dce2e8; text-align: center;" width="849">
<tr>
<td align="center">
<img src="images/filemanager.jpg" /></td>
</tr>
<tr>
<td style="height: 260px" dir="rtl" align="center">
<div style="text-align: center">
&nbsp;</div>
<div style="text-align: center">
<table style="border-right: gray thin solid; border-top: gray thin solid; border-left: gray thin solid;
border-bottom: gray thin solid; margin-left: 30%; margin-right: 30%; text-align: center;">
<tr>
<td colspan="2" style="text-align: right">
<img src="images/SinaBank_102.JPG" /></td>
</tr>
<tr>
<td style="width: 112px; text-align: left">
<span id="Label3" style="color:Black;font-weight:normal;">نام کاربری : </span></td>
<td style="width: 100px; text-align: right">
<input name="txtusername" type="text" maxlength="50" id="txtusername" style="width:161px;" /></td>
</tr>
<tr>
<td style="width: 112px; text-align: left">
<span id="Label4" style="color:Black;font-weight:normal;">رمز عبور : </span></td>
<td style="width: 100px; text-align: right">
<input name="txtpass" type="password" maxlength="10" id="txtpass" style="width:89px;" /></td>
</tr>
<tr>
<td colspan="2">
&nbsp;<input type="image" name="Button2" id="Button2" src="images/button/login.bmp" style="border-width:0px;" /></td>
</tr>
<tr>
<td colspan="2">
</td>
</tr>
</table>
</div>
</td>
</tr>
<tr>
<td align="center">
<br />
<br />
<input name="txtMessage" type="text" value=" خوش آمدید" id="txtMessage" disabled="disabled" style="background-color:infobackground;border-color:Gray;border-style:Solid;font-family:Tahoma;font-size:Medium;height:150px;width:380px;text-align: right" /><br />
<br />
</td>
</tr>
</table>

<div>

<input type="hidden" name="__EVENTTARGET" id="__EVENTTARGET" value="" />
<input type="hidden" name="__EVENTARGUMENT" id="__EVENTARGUMENT" value="" />
<input type="hidden" name="__EVENTVALIDATION" id="__EVENTVALIDATION" value="/wEWBQLC6Ja0BgKl1bKdCALKw6LYBQK7q7GGCAK/1s7/D00O/vZixnejE5tfyVEcIbnmH7/q" />
</div>

<script type="text/javascript">
<!--
WebForm_AutoFocus('txtusername');// -->
</script>
</form>
</body>
</html>

marutash
جمعه 18 اسفند 1391, 22:46 عصر
کسی هست مرا یاری کند ؟:افسرده:

lord_viper
شنبه 19 اسفند 1391, 09:12 صبح
فکر کنم با یونیت mshtml و ihtmldocument2 استفاده نمیکین؟
چون با استفاده از این یونیت میتونی به کلیه المانهای توی یک صفحه وب دسترسی داشته باشی و برای المان submit یک متد click هم داره

marutash
شنبه 19 اسفند 1391, 14:30 عصر
فکر کنم با یونیت mshtml و ihtmldocument2 استفاده نمیکین؟
چون با استفاده از این یونیت میتونی به کلیه المانهای توی یک صفحه وب دسترسی داشته باشی و برای المان submit یک متد click هم داره

دوست عزیز از این تابع هم استفاده کردم کردم اما جواب نداد. اگه بخوای سورس برنامه رو براتون میزارم

marutash
یک شنبه 20 اسفند 1391, 22:28 عصر
سید !!!
معلومه که متن رو کامل نخوندی
قراره این برنامه یا بهتر بگم ربات ، به زبان دلفی نوشته بشه.

در هرصورت نتوستم راهی برای اجرای اسکریپت های موجود این صفحه پیدا کنم و مجبور شدم با استفاده از شبیه سازی کلیک ماوس و مقدار دهی edit های صفحه برنامه رو بسازم
تابع شبیه سازی ماوس

procedure click_left(x,y:integer);
var
Pt : TPoint;
begin
{Get the point in the center of webbrowser}
Pt.x := x;
Pt.y := y;
{Convert Pt to screen coordinates}
{Convert Pt to mickeys}
Pt.x := Round(Pt.x * (65535 / Screen.Width));
Pt.y := Round(Pt.y * (65535 / Screen.Height));
{Move the mouse}
Mouse_Event(MOUSEEVENTF_ABSOLUTE or MOUSEEVENTF_MOVE, Pt.x, Pt.y, 0, 0);
{Simulate the left mouse button down}
Mouse_Event(MOUSEEVENTF_ABSOLUTE or MOUSEEVENTF_LEFTDOWN, Pt.x, Pt.y, 0, 0);
{Simulate the left mouse button up}
Mouse_Event(MOUSEEVENTF_ABSOLUTE or MOUSEEVENTF_LEFTUP, Pt.x, Pt.y, 0, 0);
end;

و مقدار دهی دو المان edit صفحه aspx و لاگین اتوماتیک

Doc := WebBrowser1.Document as IHTMLDocument2;
if Assigned(Doc) then
begin
WebForm := Doc.Forms.Item(0,'') as IHTMLFormElement;
FormElements := WebForm.Elements;
FormElements.Item(2).Value:='aaaaaaaaaa';
FormElements.Item(3).Value:='bbbbbbb';
click_left(512,455); // فراخواني تابع براي انتقال و کليک ماوس
submit_ok:=true;
end else ShowMessage('خطا در اتصال به سايت ');

Mask
دوشنبه 21 اسفند 1391, 09:36 صبح
شی http از شما یوزر و پسورد میگیره. میتونید از این خاصیت اسفاده کنید.

rezakhakpour
دوشنبه 21 اسفند 1391, 10:44 صبح
با سلام
چطور ميتونم به اخباري که بعد از ورود در سايتي نمايش ميدهد در يک صفحه جداگانه بدون وارد کردن يوزر و پسورد دسترسي پيدا کنم.
مثلا يه برنامه تحت وب باشه که وقتي وارد اون آدرس ميشي خوکار بره تو سايت مورد نظر و يوزر و پسورد مشخص شده در کدها رو وارد کنه بعد از ورود گريد ويو اخبار رو فقط نمايش بده.

ممنون ميشم راهنمايي کنيد.