This commit is contained in:
2014-10-15 08:12:04 +00:00
commit cbee8b92bf
12 changed files with 802 additions and 0 deletions

143
Form1.cs Normal file
View File

@@ -0,0 +1,143 @@
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<string> photoURLlist = new List<string>();
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");
}
}
}