PDA

View Full Version : مبتدی: مشکل پرکردن یک فیل بخصوص در web browser



sara_aryanfar
چهارشنبه 24 فروردین 1390, 16:24 عصر
با سلام خدمت دوستان امروز روز اول اومدنم تو این انجمنه امید وارم تو این انجمن لا اقل به سوالا جواب بدن بگذریم من یه نرم افزار دارم می نویسم برای ارال نظر تو بلاگفا به چند تا مشکل بر خوردم که ممنون میشم راهنمایی کنین اول اینکه من با بیرون کشیدن سورس صفحات همه کارامو انجام میدم مثلا پیدا کردن آخرین پست و غیره که اینم خیلی زمان می بره و برنامه کند میشه راه بهتری برای این کار هست؟
سوال دوم من اینه که من تو وارد کردن مقدار در باکس کد امنیتی بلاگفا دچار مشکل شدم چون که ظاهرا id مربوط به این باکس یه کد هست که دائما عوض میشه چطوری می تونم این فیلد رو پر کنم
68678

exlord
چهارشنبه 24 فروردین 1390, 17:32 عصر
روش 1 :
webBrowser1.Document.GetElementById("trhuman").Children[0].Children[0]
روش 2 :
webBrowser1.Document.GetElementsByTagName("input")[7];

sara_aryanfar
چهارشنبه 24 فروردین 1390, 18:27 عصر
با تشکر از پاسخگویی شما پس از استفاده این ارر رو میده
Error 1 Only assignment, call, increment, decrement, and new object expressions can be used as a statement C:\Users\arash\Documents\Visual Studio 2008\Projects\coment sender\coment sender\Form1.cs 240 17 coment sender

sara_aryanfar
چهارشنبه 24 فروردین 1390, 18:38 عصر
با تشکر حلش کردم ممنون راستی آیا امکان این هست که این تصویر رو در فرم هم نشون داد چون تا جایی که می دونم این کد امنیتی از جانب سرور میاد و تو سورس فکر کنم نباشه چطوری میشه از این کد در داخل برنامه بهره برد و انو تو پیکچر باکس نشون داد

exlord
چهارشنبه 24 فروردین 1390, 20:47 عصر
اول یه reference به Microsoft.mshtml به پروژه اضافه کنین ...
68689
بعد ...
using mshtml;

public Bitmap GetImage(IHTMLImgElement imgDom)
{
IHTMLDocument2 doc = (IHTMLDocument2)webBrowser1.Document.DomDocument;
IHTMLControlRange imgRange = (IHTMLControlRange)((HTMLBody)doc.body).createCont rolRange();

imgRange.add((IHTMLControlElement)imgDom);

imgRange.execCommand("Copy", false, null);

Bitmap bmp = (Bitmap)Clipboard.GetDataObject().GetData(DataForm ats.Bitmap);
return bmp;

}
بعد از لود شدن صفحه ... برای لود کردن عکس ..
webBrowser1.Document.GetElementById("cmtbody").Focus();
بعد از لود شدن عکس ...
IHTMLImgElement imgDom = (IHTMLImgElement)webBrowser1.Document.GetElementBy Id("imgspace").Children[0].DomElement;
pictureBox1.Image = GetImage(imgDom);

sara_aryanfar
چهارشنبه 24 فروردین 1390, 23:40 عصر
با تشکر از راهنمایی شما من از این کد شما در قسمت webBrowser1_DocumentCompleted استفاده کردم اما عکسی در پیکچر باکسم نمیاد

کد رو اینطوری گذاشتم

webBrowser1.Document.GetElementById("cmtbody").Focus();
IHTMLImgElement imgDom = (IHTMLImgElement)webBrowser1.Document.GetElementBy Id("imgspace").Children[0].DomElement;
pictureBox1.Image = GetImage(imgDom);

sara_aryanfar
پنج شنبه 25 فروردین 1390, 02:19 صبح
[
بعد از لود شدن عکس ...
IHTMLImgElement imgDom = (IHTMLImgElement)webBrowser1.Document.GetElementBy Id("imgspace").Children[0].DomElement;
pictureBox1.Image = GetImage(imgDom);[/QUOTE]


من این کد رو کجا باید بزارم چون وقتی توی رویداد یک باتن می زارم به درستی عمل می کنه اما وقتی میبرم تو رویداد داکیومنت کامپلکت می زارم کار نمی کنه

exlord
پنج شنبه 25 فروردین 1390, 10:03 صبح
[
بعد از لود شدن عکس ...
IHTMLImgElement imgDom = (IHTMLImgElement)webBrowser1.Document.GetElementBy Id("imgspace").Children[0].DomElement;
pictureBox1.Image = GetImage(imgDom);
من این کد رو کجا باید بزارم چون وقتی توی رویداد یک باتن می زارم به درستی عمل می کنه اما وقتی میبرم تو رویداد داکیومنت کامپلکت می زارم کار نمی کنه


از اوجایی که لود شدن عکس یه کمی طول میکشه و به صورت آنی نیست میتونین یه Timer بزارین و بعد از مثلا 10 ~ 20 ثانیه این کد اجرا بشه ....

sara_aryanfar
پنج شنبه 25 فروردین 1390, 10:42 صبح
به نظرتون رویداد webBrowser1_DocumentCompleted محل مناسبی برای قرار دادن این کد هست یا جای دیگه در ضمن من می خوام برنامه سرعت بالایی داشته باشه اگه هر بار 20 ثانیه صبر کنه ؟:افسرده:

sara_aryanfar
پنج شنبه 25 فروردین 1390, 11:58 صبح
دوست گرامی واقعا ممنون هستم از لطفتون واقعا کمک بزرگی کردید البته من این برنامه رو برای آشنایی با یه مسله به نام پردازش تصویر می خواستم چون باید تو دانشگاه در بارش یه برنامه بنویسم و باید با این کدا آشنایی داشتم اما نمی دونم که امکان خواندن اینگونه کد های امنیتی وجود داره که برم دربارش کار کنم یا نه آیا شما در این مورد اطلاعاتی دارین؟

exlord
پنج شنبه 25 فروردین 1390, 14:05 عصر
دوست گرامی واقعا ممنون هستم از لطفتون واقعا کمک بزرگی کردید البته من این برنامه رو برای آشنایی با یه مسله به نام پردازش تصویر می خواستم چون باید تو دانشگاه در بارش یه برنامه بنویسم و باید با این کدا آشنایی داشتم اما نمی دونم که امکان خواندن اینگونه کد های امنیتی وجود داره که برم دربارش کار کنم یا نه آیا شما در این مورد اطلاعاتی دارین؟
به کاری که میخواین انجام بدین میگن OCR => Optical character recognition که یه شاخه از AI و پردازش تصویر هست
Tessnet2 a .NET 2.0 Open Source OCR assembly using Tesseract engine (http://www.pixel-technology.com/freeware/tessnet2/)
http://cstruter.com/blog/269
http://www.codeproject.com/KB/office/modi.aspx

Farshid007
پنج شنبه 25 فروردین 1390, 14:45 عصر
اقا دست گلت درد نکنه!
using MODI
چرا کار نمیکنه؟
از کدوم رفرنس باید استفاده کنم؟

Farshid007
پنج شنبه 25 فروردین 1390, 15:17 عصر
در ضمن توضیحاتی که در مورد پرفتن عکس و گذاشتن ان توی پیکچر باکس گفته بودی حرف نداشتند
اما این راهش نیست
هر وبلاگ کپتچای زیادی که مختص اون وبلاگ هستن رو داره
اول برو به این ادرس و فوکوس رو بده به CmtBody(تا کپتچا یه بار لود بشه)البته فوکوس ندادی هم ندادی
http://1bagh.blogfa.com/comments/?blogid=1bagh&postid=48&timezone=12600
بعد هر بار که میری توی ادرس زیر یه کپتچا از کپتچاهای مختص اون وبلاگ به دست می اد
http://1bagh.blogfa.com/comments/captcha2.ashx?2562467
یعنی فرق نمی کنه که توی فیلد کد امنیتی کدوم از این کپتچا هارو بزنی
پس ما باید بعد از اینکه صفحه کامند لود شد
عکس پیکچر باکسو بزاریم عکس توی این ادرس
http://[Your Blog ID].blogfa.com/comments/captcha2.ashx?2562467 (http://1bagh.blogfa.com/comments/captcha2.ashx?2562467)
البته دقت کنید که حتما اول باید صفحه کامنت اون وبلاگی که می خواهی کپتچارو ازش در بیاری باید لود بشه تا عکس داخل این صفحه خالی نشه
در ضمن اصلا نمی خواد پیکچر باکس بزاری توی فرم
می تونید یه webbrowser بزارید و خاصیت ScrollBarEnabeldرو برابر falseبزارید و وقتی توی WebBroeswrCommendPage_DocumentComplete
بزارید
webCaptcha.Navigate(BlogAddress + "/comments/captcha2.ashx?2562467");

exlord
پنج شنبه 25 فروردین 1390, 19:30 عصر
اقا دست گلت درد نکنه!
using MODI
چرا کار نمیکنه؟
از کدوم رفرنس باید استفاده کنم؟
توی توضیحاتش نوشته ...
MODI (Microsoft Office Document Imaging)
68745

exlord
پنج شنبه 25 فروردین 1390, 19:49 عصر
هر وبلاگ کپتچای زیادی که مختص اون وبلاگ هستن رو داره

captcha یه نوشتس که توی سرور به صورت Random ساخته میشه و بعد تبدیل میشه به عکس ... یعنی یه چیز از قبل آماده نیست ... و اصولا نباید چیزی غیر از اونچه که در عکس هست رو قبول کنه ... حالا من اینجا رو تست نکردم ... شاید این بلاگفا از نظر امینیت اونقدر پایین باشه که اینجوری که شما میگین باشه ...
http://en.wikipedia.org/wiki/CAPTCHA

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

flash118
شنبه 27 فروردین 1390, 09:14 صبح
با سلام
دوست عزیز در مورد پردازش تصویر اگر بخواهید در C# کار کنید باید تقریبا اکثر کارهای رو خودتون انجام بدید البته کامپوننت هایی هم هستن که گران قیمت و به صرفه نیستن و برای کار با پردازش تصویر در سی شارپ باید با الگوریتم های تشخیص لبه که معروفترینش الگوریتم SOBEL هست شروع کنید و بایت به بایت خواندن و پردازش