|

楼主 |
发表于 2013-1-14 04:26:43
|
显示全部楼层
回 493楼(secondsen) 的帖子
我记得RGSS不能这样的=-=
测试后也证实不可以了...
我是加上了这货就好了...- # 此脚本来源于日本,作者てつ
- class Get_Version_Info
- AGENT = "RGSS PLAYER"
- INTERNET_OPEN_TYPE_PRECONFIG = 0
- INTERNET_OPEN_TYPE_DIRECT = 1
- def Get_Version_Info.InternetOpen()
- io = Win32API.new('wininet', 'InternetOpen', %(p, l, p, p, l), 'l')
- hInternet = io.call(AGENT, INTERNET_OPEN_TYPE_PRECONFIG, nil, nil, 0)
- return hInternet
- end
- def Get_Version_Info.InternetOpenUrl(hSession, url)
- iou = Win32API.new('wininet', 'InternetOpenUrl', %(l, p, p, l, l, l), 'l')
- hService = iou.call(hSession, url, nil, 0, 0, 0)
- return hService
- end
- def Get_Version_Info.InternetReadFile(hService)
- content = ""
- read_size = 1024
- irf = Win32API.new('wininet', 'InternetReadFile', %(l, p, i, p), 'i')
- while(true)
- buf = "\\0" * read_size
- red = [0].pack('L')
- irf.call( hService, buf, read_size, red )
- if(red.unpack('L') == [0])
- break
- end
- buf.delete!("\\0")
- content += buf
- end
- return content
- end
- HTTP_QUERY_STATUS_CODE = 19
- def Get_Version_Info.HttpQueryInfo(hService)
- read_size = 1024
- buf = "\\0" * read_size
- red = [read_size-1].pack('L')
- hqi = Win32API.new('wininet', 'HttpQueryInfo', %(l, l, p, p, p), 'i')
- isOk = hqi.call( hService, HTTP_QUERY_STATUS_CODE, buf, red, nil)
- buf.delete!("\\0")
- return buf
- end
- def Get_Version_Info.InternetCloseHandle(hInternet)
- ich = Win32API.new('winInet', 'InternetCloseHandle', %(l), 'i')
- isOk = ich.call(hInternet)
- return isOk
- end
- HTTP_CODE_OK = "200"
-
- def Get_Version_Info.get_version(url)
- version = nil
- begin
- hInternet = InternetOpen()
- if(hInternet != 0)
- hService = InternetOpenUrl(hInternet, url)
- if(hService != 0)
- status_code = HttpQueryInfo(hService)
- if(status_code == HTTP_CODE_OK)
- version = InternetReadFile(hService)
- end
- InternetCloseHandle(hService)
- end
- InternetCloseHandle(hInternet)
- end
- rescue
- return nil
- end
- return version
- end
- end
复制代码
不过折腾着发现文件不知道跑哪去了...
重写一次... |
|