Как из исходника сделать программу?

Александр Червонцев Александр Червонцев

Хочу из исходника сделать программу для обмена друзьями вконтакте.
Подскажите как сделать?
Вот кусочек исходника.

; <compiler:>

httpQuery(byref Result, lpszUrl, POSTDATA="", HEADERS="")
{

global httpQueryOps, httpAgent, httpProxy, httpProxyByPass, httpQueryReferer, httpQueryAcceptType, httpQueryDwFlags

defaultOps =
(LTrim Join|
httpAgent=AutoHotkeyScript|httpProxy=0|httpProxyByPass=0|INTERNET_FLAG_SECURE=0x00800000
SECURITY_FLAG_IGNORE_UNKNOWN_CA=0x00000100|SECURITY_FLAG_IGNORE_CERT_CN_INVALID=0x00001000
SECURITY_FLAG_IGNORE_CERT_DATE_INVALID=0x00002000|SECURITY_FLAG_IGNORE_CERT_WRONG_USAGE=0x00000200
INTERNET_OPEN_TYPE_PROXY=3|INTERNET_OPEN_TYPE_DIRECT=1|INTERNET_SERVICE_HTTP=3
)
Loop, Parse, defaultOps,|
{
RegExMatch(A_LoopField, "(?P<option>[^=]?P<default>.*)", http)
if StrLen(%httpOption%)=0
%httpOption% := httpDefault
}

hModule:= DllCall("LoadLibrary", "Str", "WinINet.Dll")

offset_name_length:= "4-lpszScheme-255|16-lpszHostName-1024|28-lpszUserName-1024|". "36-lpszPassword-1024|44-lpszUrlPath-1024|52-lpszExtrainfo-1024"
VarSetCapacity(URL_COMPONENTS, 60, 0)

NumPut(60, URL_COMPONENTS, 0), NumPut(255, URL_COMPONENTS, 12), NumPut(0xffff, URL_COMPONENTS, 24)

Loop, Parse, offset_name_length,|
{
RegExMatch(A_LoopField, "(?P<offset>\d?P<name>[a-zA-Z]?P<size>\d+)", iCU_)
VarSetCapacity(%iCU_Name%, iCU_Size, 0)
NumPut(&%iCU_Name%, URL_COMPONENTS, iCU_Offset)
NumPut(iCU_Size, URL_COMPONENTS, iCU_Offset+4)
}

DllCall("WinINet\InternetCrackUrlA", "Str", lpszUrl, "uInt", StrLen(lpszUrl), "uInt", 0, "uInt",&URL_COMPONENTS)

Loop, Parse, offset_name_length,|
{
RegExMatch(A_LoopField, "-(?P<name>[a-zA-Z]+)-", iCU_)
VarSetCapacity(%iCU_Name%,-1)
}
nPort:=NumGet(URL_COMPONENTS, 24, "uInt")

dwFlags:= httpQueryDwFlags

if (lpszScheme = "https")
dwFlags |= (INTERNET_FLAG_SECURE|SECURITY_FLAG_IGNORE_CERT_CN_INVALID
|SECURITY_FLAG_IGNORE_CERT_WRONG_USAGE)

if (lpszScheme="unknown") {
Result:= "ERR: No Valid URL supplied. "
Return StrLen(Result)
}

hInternet:= DllCall("WinINet\InternetOpenA", "Str", httpAgent, "UInt",(httpProxy ≠ 0? INTERNET_OPEN_TYPE_PROXY: INTERNET_OPEN_TYPE_DIRECT )
, "Str", httpProxy, "Str", httpProxyBypass, "Uint", 0)

hConnect:= DllCall("WinINet\InternetConnectA", "uInt", hInternet, "Str", lpszHostname, "Int", nPort, "Str", lpszUserName, "Str", lpszPassword, "uInt", INTERNET_SERVICE_HTTP, "uInt", 0, "uInt*", 0)

if (Strlen(POSTDATA)>0) {
HTTPVerb:="POST"
if StrLen(Headers)=0
Headers:="Content-Type: application/x-www-form-urlencoded"
} else
HTTPVerb:="GET"

hRequest:= DllCall("WinINet\HttpOpenRequestA", "uInt", hConnect, "Str", HTTPVerb, "Str", lpszUrlPath.lpszExtrainfo, "Str", ProVer:= "HTTP/1.1", "Str", httpQueryReferer, "Str", httpQueryAcceptTypes, "uInt", dwFlags, "uInt", Context:=0 )

sRequest:= DllCall("WinINet\HttpSendRequestA", "uInt", hRequest, "Str", Headers, "uInt", Strlen(Headers)
, "Str", POSTData, "uInt", Strlen(POSTData.

VarSetCapacity(header, 2048, 0)
VarSetCapacity(header_len, 4, 0)

Loop, 5
if. HeaderRequest:=DllCall("WinINet\HttpQueryInfoA", "uint", hRequest, "uint", 21, "uint",&header, "uint",&header_len, "uint", 0. =1)
break

If (headerRequest=1) {
VarSetCapacity(res, headerLength:=NumGet(header_len), 32)
DllCall("RtlMoveMemory", "uInt",&res, "uInt",&header, "uInt", headerLength)
Loop,% headerLength
if (*(&res-1+a_index)=0)
NumPut(Asc("'n"), res, a_index-1, "uChar")
VarSetCapacity(res,-1)
} else
res:= "timeout"

Loop, Parse, res,'n,'r
{
RetValue:= A_LoopField
break

Jenek Jenek

Поставь прогу для компиляции…

Гость Гость

Гг этож autohotkey, его компилер и установи

Добавить комментарий | Похожие обсуждения

Вопросы и ответы по Вконтакте
Вопросы и ответы

Популярные вопросы и ответы о социальной сети www.vkontakte.ru (vk.com)