package org.javaya.test.swt;
import org.eclipse.swt.SWT;
import org.eclipse.swt.browser.*;
import org.eclipse.swt.layout.*;
import org.eclipse.swt.widgets.*;
/**
* tistory에 접속해서 자동으로 로그인 한다.<br/>
* SWT Browser 클래스를 이용해서 시스템 기본 웹브라우저로 결과를 출력<br/>
* 이클립스에서 실행할 경우에는 <Ctrl+F11>로 실행하면 되며, <br/>
* java app로 실행할 경우에는 SWT관련 jar 파일을 클래스패스에 추가해야 한다. <br/>
* 서버에서 쿠키값을 받아서 이동하기 위해 http://www.tistory.com/ 으로 접속한 뒤 사용자 페이지로 이동 <br/>
*/
public class ShowTistory {
public String url1 = "http://www.tistory.com/"; // tistory main
public String url2 = "http://???.tistory.com/"; // 로그인 하고자 하는 tistory 주소
Browser browser = null;
Shell shell = null;
/**
* Runs the application
*/
public void run() {
Display display = new Display();
shell = new Shell(display);
shell.setText("Browser");
createContents(shell);
shell.open();
// Navigate to url1
browser.setUrl(url1);
while (!shell.isDisposed()) {
if (!display.readAndDispatch()) {
display.sleep();
}
}
display.dispose();
}
final void setTitle(String title) {
this.shell.setText(title);
}
final void executeScript(String script) {
browser.execute(script);
}
final void maximize() {
shell.setMaximized(true);
}
/**
* Creates the main window's contents
* @param shell the main window
*/
private void createContents(Shell shell) {
shell.setLayout(new FillLayout());
// Create a web browser
browser = new Browser(shell, SWT.NONE);
browser.addStatusTextListener(new org.eclipse.swt.browser.StatusTextListener()
{
public void changed(org.eclipse.swt.browser.StatusTextEvent e) {
if (e.text.contains("완료")) {}
}
});
browser.addLocationListener(new org.eclipse.swt.browser.LocationListener()
{
public void changed(LocationEvent e) {
setTitle("Teleweb");
executeScript("document.getElementById('loginid').value = '???@daum.net';"); // tistory ID
executeScript("document.getElementById('password').value = '???';"); // tistory password
executeScript("login();");
executeScript("confirm('이동');");
executeScript("document.location.href='" + url2 + "';");
maximize();
browser.removeLocationListener(this);
}
public void changing(LocationEvent e) {
// TODO Auto-generated method stub
}
});
}
/**
* The application entry point
* @param args the command line arguments
*/
public static void main(String[] args) {
new ShowTistory().run();
}
}
댓글 없음:
댓글 쓰기