Code: Select all
FileEncoding, UTF-8
Gui, +hwndGui
Gui, Add, ListView, x20 w750 r50 +LV0x4000 +LV0x00010000 Grid +LV0x20 hwndLVA vLVA Grid cBlack BackgroundFFDD99, index|OBJECT/KEY|key.1|Key.2|Key.3|Key.4|Key.5|Key.6|Key.7|Key.8|Key.9|Key.10|wert
Gui, Show
GeoIP() ; load object using the 'https://ipapi.co/' API
_clipboard := ArrayIterum(GeoIP)
Return
GeoIP(type:="") { ; https://www.autohotkey.com/boards/viewtopic.php?f=10&t=86627 by BoBo
Global GeoIP := {}
whr := ComObjCreate("WinHttp.WinHttpRequest.5.1")
whr.SetTimeouts(0, 5000, 5000, 100000) ; adjust timeouts accordingly. Default: (0, 30000, 30000, 600000)
whr.Open("GET","https://ipapi.co/csv/", False) ; optional output formats are: json, jsonp, xml, csv, yaml.
whr.Send()
Sleep 100
k := StrSplit(StrSplit(Trim(whr.ResponseText,"`n`r"),"`n").1,",") ; processing retrieved csv's 1st line
v := StrSplit(StrSplit(Trim(whr.ResponseText,"`n`r"),"`n").2,",") ; processing retrieved csv's 2nd line
Loop % k.Length()
GeoIP[Trim(k[A_Index],"`n`r")] := v[A_Index]
Return
}
ArrayIterum(arr)
{
for keyA, wertA in Arr
if IsObject(wertA)
for keyB, wertB in wertA
if IsObject(wertB)
for keyC, wertC in wertB
if IsObject(wertC)
for keyD, wertD in wertC
if IsObject(wertD)
for keyE, wertE in wertD
if IsObject(wertE)
for keyF, wertF in wertE
if IsObject(wertF)
for keyG, wertG in wertF
if IsObject(wertG)
for keyH, wertH in wertG
if IsObject(wertH)
for keyI, wertI in wertH
if IsObject(wertI)
for keyJ, wertJ in wertI
if IsObject(wertJ)
for keyK, wertK in wertJ
{
++AIndexK
X .= "testx[" keyA ", " keyB ", " keyC ", " keyD ", " keyE ", " keyF ", " keyG ", " keyH ", " keyI ", " keyJ ", " keyk "] = " wertk "`n"
RI := Lv_Add("", AIndexK, KeyA, KeyB, KeyC, KeyD, KeyE, KeyF, KeyG, KeyH, KeyI, KeyJ, KeyK)
LV_Modify(RI, "Col13", wertK)
}else{
++AIndexJ
X .= "testx[" keyA ", " keyB ", " keyC ", " keyD ", " keyE ", " keyF ", " keyG ", " keyH ", " keyI ", " keyJ "] = " wertj "`n"
RI := Lv_Add("", AIndexJ, KeyA, KeyB, KeyC, KeyD, KeyE, KeyF, KeyG, KeyH, KeyI, KeyJ)
LV_Modify(RI, "Col13", wertJ)
}else{
++AIndexI
X .= "testx[" keyA ", " keyB ", " keyC ", " keyD ", " keyE ", " keyF ", " keyG ", " keyH ", " keyI "] = " wertI "`n"
RI := Lv_Add("", AIndexI, KeyA, KeyB, KeyC, KeyD, KeyE, KeyF, KeyG, KeyH, KeyI)
LV_Modify(RI, "Col13", wertI)
}else{
++AIndexH
X .= "testx[" keyA ", " keyB ", " keyC ", " keyD ", " keyE ", " keyF ", " keyG ", " keyH "] = " wertH "`n"
RI := Lv_Add("", AIndexH, KeyA, KeyB, KeyC, KeyD, KeyE, KeyF, keyG, keyH)
LV_Modify(RI, "Col13", wertH)
}else{
++AIndexG
X .= "testx[" keyA ", " keyB ", " keyC ", " keyD ", " keyE ", " keyF ", " keyG "] = " wertG "`n"
RI := Lv_Add("", AIndexG, KeyA, KeyB, KeyC, KeyD, KeyE, KeyF, KeyG)
LV_Modify(RI, "Col13", wertG)
}else{
++AIndexF
X .= "testx[" keyA ", " keyB ", " keyC ", " keyD ", " keyE ", " keyF "] = " wertF "`n"
RI := Lv_Add("", AIndexF, KeyA, KeyB, KeyC, KeyD, KeyE, KeyF)
LV_Modify(RI, "Col13", wertF)
}else{
++AIndexE
X .= "testx[" keyA ", " keyB ", " keyC ", " keyD ", " keyE "] = " wertE "`n"
RI := Lv_Add("", AIndexE, KeyA, KeyB, KeyC, KeyD, KeyE)
LV_Modify(RI, "Col13", wertE)
}else{
++AIndexD
X .= "testx[" keyA ", " keyB ", " keyC ", " keyD "] = " wertD "`n"
RI := Lv_Add("", AIndexD, KeyA, KeyB, KeyC, KeyD)
LV_Modify(RI, "Col13", wertD)
}else{
++AIndexC
X .= "testx[" keyA ", " keyB ", " keyC "] = " wertC "`n"
RI := Lv_Add("", AIndexC, KeyA, KeyB, KeyC)
LV_Modify(RI, "Col13", wertC)
}else{
++AIndexB
X .= "testx[" keyA ", " keyB "] = " wertB "`n"
RI := Lv_Add("", AIndexB, KeyA, KeyB)
LV_Modify(RI, "Col13", wertB)
}else{
++AIndexA
X .= "testx[" keyA "] = " wertA "`n"
RI := Lv_Add("", AIndexA, KeyA)
LV_Modify(RI, "Col13", wertA)
}
Loop, % LV_GetCount("Columns")
LV_ModifyCol(A_Index, "AutoHdr")
LV_ModifyCol(1, 0)
return X
}