using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using System.IO; namespace CyworldDownloader { public partial class Form1 : Form { string strLoginURL = "http://www.cyworld.com"; string strContentURL = "http://minihp.cyworld.com/pims/board/image/imgbrd_list.asp?tid=21572675&cpage=1"; bool m_bFirst = true; List photoURLlist = new List(); public Form1() { InitializeComponent(); } private void Form1_Load(object sender, EventArgs e) { wbLogin.Navigate(strLoginURL); } private void wbLogin_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e) { WebBrowser browser = (WebBrowser)sender; if(e.Url.Host != browser.Url.Host) return; if(m_bFirst == true) { wbLogin.Document.GetElementById("ID").InnerText = "_last_@hanmail.net"; wbLogin.Document.GetElementById("PASSDM").Focus(); wbLogin.Document.GetElementsByTagName("HTML")[0].ScrollTop = 201; wbLogin.Document.GetElementsByTagName("HTML")[0].ScrollLeft = 652; m_bFirst = false; } else { photoURLlist.Clear(); wbContent.Navigate(strContentURL); } } private void wbContent_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e) { WebBrowser browser = (WebBrowser)sender; if(e.Url.Host != browser.Url.Host) return; HtmlElement element = browser.Document.GetElementsByTagName("BODY")[0]; //StreamWriter writer = new StreamWriter("content.html"); //writer.Write(element.InnerHtml); //writer.Close(); string strTarget = element.InnerHtml; while(true) { int iPos = strTarget.IndexOf("file_down"); if(iPos < 0) break; int iPos2 = strTarget.Substring(Math.Max(iPos-200, 0), 200).LastIndexOf("http") + Math.Max(iPos-200, 0); int iPos3 = strTarget.Substring(iPos2, 500).IndexOf("\"") + iPos2; string photourl = strTarget.Substring(iPos2, iPos3-iPos2); photoURLlist.Add(photourl); Console.WriteLine(photourl); strTarget = strTarget.Substring(iPos3, strTarget.Length-iPos3); } if(photoURLlist.Count > 0) wbPhoto.Navigate(photoURLlist[0]); } private void wbPhoto_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e) { WebBrowser browser = (WebBrowser)sender; if(e.Url.Host != browser.Url.Host) return; // 참고 // http://www.developerfusion.com/code/4712/generate-an-image-of-a-web-page/ using (Graphics srcGraphics = browser.CreateGraphics()) { using (Graphics destGraphics = this.pictureBox1.CreateGraphics()) { IntPtr hdcDest = destGraphics.GetHdc(); IntPtr hdcSrc = srcGraphics.GetHdc(); GDI32.BitBlt( hdcDest, 0, 0, browser.ClientRectangle.Width, browser.ClientRectangle.Height, hdcSrc, 0, 0, (int) GDI32.SRCCOPY ); srcGraphics.ReleaseHdc(hdcSrc); destGraphics.ReleaseHdc(hdcDest); } } //HtmlDocument dom = browser.Document; //htmlc //IHTMLDocument2 doc = (IHTMLDocument2)webBrowser1.Document.DomDocument; //IHTMLControlRange imgRange = (IHTMLControlRange)((HTMLBody)doc.body).createControlRange(); //foreach(IHTMLImgElement img in doc.images) //{ // imgRange.add((IHTMLControlElement)img); // imgRange.execCommand("Copy", false, null); // using(Bitmap bmp = (Bitmap)Clipboard.GetDataObject().GetData(DataFormats.Bitmap)) // { // bmp.Save(@"C:\"+img.nameProp); // } //} } private void btDebug_Click(object sender, EventArgs e) { Console.WriteLine("break"); } } }