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
번호 분류 제목 날짜 조회 수
27 회로도전자부품 주문한 부품 리스트 file 2013.10.26 20758
26 AutoHotKey IE.ahk COM 환상강의 1 file 2011.02.10 21252
25 AutoHotKey AutoHotkey_L: Arrays, Debugger, x64, COM, #If expression 3 2011.02.14 21594
24 AutoHotKey [ahk_l] 구글의 Gmail 자동로그인 소스 3 2011.02.11 22494
23 AVR 555 TIMER AM TRANSMITTER CIRCUIT(AM 송신 회로) file 2014.09.20 23306
22 컴퓨터잡담 Autohotkey DllCall() 호출하기 5 2010.12.19 23471
21 AutoHotKey autohotkey) Mutex에 대해서 1 4 2011.12.31 24124
20 컴퓨터잡담 인터넷 익스플러러 속도 향샹을 위한 팁 1 file 2012.02.25 24571
19 AutoHotKey [AUTOHOTKEY] FTP 제어 file 2011.02.04 25248
18 AutoHotKey [COM] 자바스크립트 / DOM / HTML 웹페이지 컨트롤 3 2011.02.12 27305
17 AutoHotKey autohotkey) postmessage mouse control 13 2012.02.22 28633
16 AutoHotKey autohotkey) 편입 변수 4 2012.03.13 28888
15 AutoHotKey autohotkey) 윈도우 ahk_id 추출하기 2 2012.03.06 30091
14 AutoHotKey ahk) 열려진 엑셀창의 값 불러오기 1 2013.10.30 32538
13 AutoHotKey autohotkey) 30분마다 자동으로 디스크 정리하기 file 2013.07.31 33071
12 AutoHotKey autohotkey) 오토핫키에서 자주쓰는 함수모음 2013.10.30 33704
11 AutoHotKey ahk) autohotkey 글자 자르기 방법 2013.10.30 34678
10 AutoHotKey autohotkey) Virus? 6 2011.12.31 34681
9 AutoHotKey Autohotkey) Find WM_COMMAND parameter with Winspector 17 2012.02.22 35871
8 AutoHotKey ahk) autohotkey 엑셀(Excel)에서 행값 증가시키기 2013.10.30 37424
Board Pagination Prev 1 2 3 4 5 Next
/ 5

http://urin79.com

우린친구블로그

sketchbook5, 스케치북5

sketchbook5, 스케치북5

나눔글꼴 설치 안내


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

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

설치 취소