Skip to content
AutoHotKey
2011.02.09 19:19

UrlDownloadToVar()

조회 수 15464 추천 수 0 댓글 0
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄

UrlDownloadToVar()


스크립트에 대한 설명: 

제목 그대로 UrlDownloadToFile 명령을 확장시켜준 함수입니다.
당연히 공식 포럼에서 퍼온 자료입니다.
http://www.autohotkey.com/forum/topic10466.html


보통 웹페이지의 소스에서 원하는 내용을 추출할때
UrlDownloadToFile 명령으로 해당 소스를 파일로 다운로드후
FileRead 명령등으로 내용을 변수에 읽어들여 String 처리를 하게 됩니다.

UrlDownloadToVar()명령을 사용하면 변수로 해당 내용을 바로 받을 수 있습니다.

아래 예제는 IE의 주소창의 주소를 사용해서 해당 페이지의 소스를 출력해 줍니다.

^RButton:: 
WinGetTitle,Title,A
SetTitleMatchMode,3
ControlGetText,url,Edit1,%Title%
res:=UrlDownloadToVar(url,src)
msgbox,%src%
reload
return



<--------------------------------------------- AHK 스크립트 내용 --------------------------------------------->

;http://www.autohotkey.com/forum/topic10466.html

UrlDownloadToVar(URL, Proxy="", ProxyBypass="") {
AutoTrim, Off
hModule := DllCall("LoadLibrary", "str", "wininet.dll")

If (Proxy != "")
AccessType=3
Else
AccessType=1
;INTERNET_OPEN_TYPE_PRECONFIG                    0   // use registry configuration
;INTERNET_OPEN_TYPE_DIRECT                       1   // direct to net
;INTERNET_OPEN_TYPE_PROXY                        3   // via named proxy
;INTERNET_OPEN_TYPE_PRECONFIG_WITH_NO_AUTOPROXY  4   // prevent using java/script/INS

io_hInternet := DllCall("wininet\InternetOpenA"
, "str", "" ;lpszAgent
, "uint", AccessType
, "str", Proxy
, "str", ProxyBypass
, "uint", 0) ;dwFlags

iou := DllCall("wininet\InternetOpenUrlA"
, "uint", io_hInternet
, "str", url
, "str", "" ;lpszHeaders
, "uint", 0 ;dwHeadersLength
, "uint", 0x80000000 ;dwFlags: INTERNET_FLAG_RELOAD = 0x80000000 // retrieve the original item
, "uint", 0) ;dwContext

If (ErrorLevel != 0 or iou = 0) {
DllCall("FreeLibrary", "uint", hModule)
return 0
}

VarSetCapacity(buffer, 512, 0)
VarSetCapacity(NumberOfBytesRead, 4, 0)
Loop
{
  irf := DllCall("wininet\InternetReadFile", "uint", iou, "uint", &buffer, "uint", 512, "uint", &NumberOfBytesRead)
  NOBR = 0
  Loop 4  ; Build the integer by adding up its bytes. - ExtractInteger
    NOBR += *(&NumberOfBytesRead + A_Index-1) << 8*(A_Index-1)
  IfEqual, NOBR, 0, break
  ;BytesReadTotal += NOBR
  DllCall("lstrcpy", "str", buffer, "uint", &buffer)
  res = %res%%buffer%
}
StringTrimRight, res, res, 2

DllCall("wininet\InternetCloseHandle",  "uint", iou)
DllCall("wininet\InternetCloseHandle",  "uint", io_hInternet)
DllCall("FreeLibrary", "uint", hModule)
AutoTrim, on
return, res
}

로그인 후 댓글쓰기가 가능합니다.

?

List of Articles
번호 분류 제목 날짜 조회 수
67 AutoHotKey ahk로 만든 파일을 exe로 컴파일 한 후 실행시킬때 변수를 임의 1 1 2011.02.24 15333
66 AutoHotKey AHK에서 가능한 COM 인터넷 익스플로러 및 GUI 브라우저 1 2011.02.11 19502
65 AutoHotKey ahk와 ahk_l 의 웹페이지 로딩완료 체크 비교 3 2011.02.11 20325
64 AutoHotKey Autohotkey + mypeople(마이피플) 메시지 전송 1 2013.03.12 15433
63 컴퓨터잡담 autohotkey - 변수리스트(Variables and Expressions) 모음 2011.09.30 11830
62 AutoHotKey AutoHotkey COM Standard Library 2 2011.02.10 18046
61 컴퓨터잡담 Autohotkey DllCall() 호출하기 5 2010.12.19 23471
60 컴퓨터잡담 autohotkey 변수의 이해 2010.10.02 20656
59 AutoHotKey Autohotkey 브라우저 제어 테스트 file 2015.01.26 8205
58 AutoHotKey autohotkey) 30분마다 자동으로 디스크 정리하기 file 2013.07.31 33071
57 AutoHotKey Autohotkey) Find WM_COMMAND parameter with Winspector 17 2012.02.22 35871
56 AutoHotKey autohotkey) IPv6 모두 사용안함 설정하기 1 file 2011.12.30 19133
55 AutoHotKey autohotkey) Mutex에 대해서 1 4 2011.12.31 24124
54 AutoHotKey autohotkey) postmessage mouse control 13 2012.02.22 28631
53 AutoHotKey autohotkey) Virus? 6 2011.12.31 34680
52 AutoHotKey autohotkey) 네 코드를 보여, 내가 당신에게서 배우고 싶어요 1 2012.01.08 15114
51 AutoHotKey autohotkey) 맥어드레스 추출 2 2011.12.21 15082
50 AutoHotKey autohotkey) 오토핫키에서 자주쓰는 함수모음 2013.10.30 33703
49 AutoHotKey autohotkey) 웹페이지의 프레임 내용보기 & 클릭하기 2011.11.29 15149
48 AutoHotKey autohotkey) 윈도우 ahk_id 추출하기 2 2012.03.06 30089
Board Pagination Prev 1 2 3 4 5 Next
/ 5

http://urin79.com

우린친구블로그

sketchbook5, 스케치북5

sketchbook5, 스케치북5

나눔글꼴 설치 안내


이 PC에는 나눔글꼴이 설치되어 있지 않습니다.

이 사이트를 나눔글꼴로 보기 위해서는
나눔글꼴을 설치해야 합니다.

설치 취소