144 lines
3.8 KiB
C#
144 lines
3.8 KiB
C#
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");
|
|
}
|
|
}
|
|
}
|