ll_libload advapi, "advapi32.dll"
ll_getproc RegOpenKeyEx, "RegOpenKeyExA", advapi
ll_getproc RegQueryValueEx, "RegQueryValueExA", advapi
ll_getproc RegSetValueEx, "RegSetValueExA", advapi
ll_getproc RegCloseKey, "RegCloseKey", advapi
#module
#deffunc gethkey str
mref string, 32
sdim s, 22, 7
mref stt, 64
mref rstr, 65
s.0 = "HKEY_CLASSES_ROOT", "HKEY_CURRENT_USER", "HKEY_LOCAL_MACHINE", "HKEY_USERS"
s.4 = "HKEY_PERFORMANCE_DATA", "HKEY_CURRENT_CONFIG", "HKEY_DYN_DATA"
strmid rstr, string, 0, 1
if rstr ! "H" {
i = 0 + rstr
rstr = s.i
return
}
instr i, string, "\\"
if i ! -1 : strmid rstr, string, 0, i : else : rstr = string
stt = 0
repeat 7
if s.cnt = rstr {
stt = 0x80000000 + cnt
instr i.0, string, "\\"
strlen i.1, string
strmid rstr, string, i + 1, i.1 - i.0 - 1
break
}
loop
return
#deffunc regopenkey val, str, int
mref hkey, 16 : mref path, 33 : mref sa, 3
mref stt, 64
gethkey path
if stat = 0 : return
path = refstr
prm = stat, 0, 0, (sa = 0) * 0x000F003F + sa
ll_getptr path : ll_ret prm.1
ll_getptr hkey : ll_ret prm.4
ll_callfunc prm, 5, RegOpenKeyEx@
ll_ret prm : stt = prm
return
#deffunc reggetvalue val, str ,int, int
mref data, 24 : mref name, 33 : mref hkey, 2 : mref type, 3
mref stt, 64
prm = hkey
i.1 = 256
ll_getptr name : ll_ret prm.1
ll_getptr i : ll_ret prm.3
ll_getptr data : ll_ret prm.4
ll_getptr i.1 : ll_ret prm.5
ll_callfunc prm, 6, RegQueryValueEx@
ll_ret prm : stt = prm
if i >= 4 & (i <= 6) | (i = 11) | (type ! 0) : mref data, 16
if type : data = i
return
#deffunc regsetnum str, int, int, int
mref name, 32 : mref data, 1 : mref hkey, 2 : mref type, 3
mref stt, 64
if type = 3 {
s = "" + data
strlen i, s
} else {
if type = 11 : i = 8 : else : i = 4
}
prm = hkey, 0, 0, (type = 0) * 4 + type, 0, i
ll_getptr name : ll_ret prm.1
ll_getptr data : ll_ret prm.4
ll_callfunc prm, 6, RegSetValueEx@
ll_ret prm : stt = prm
return
#deffunc regclose int
mref hkey, 0
ll_callfunc hkey, 1, RegCloseKey@
return
#global
sdim path, 128
dat = 2 // 同時DL上限初期値
gethkey "1"
path = refstr + "\\Software\\Microsoft\\Windows\\CurrentVersion\\Internet Settings"
regopenkey key, path
if stat {
dialog "[ " + path + " ]が存在しません", 1
end
}
objsize 200, 25
pos 10, 10 : button "HTTP1.1を優先", *priority
pos 10, 40 : mes "同時DL上限数"
pos 130, 40 : input dat, 20, 20, 2
pos 10, 70 : button "変更する", *change
objsend 0, 0x00F4, 0x02, nouse // ボタンをチェックボックスに変更
onexit *exit
goto *priority
*load
if http11 {
reggetvalue dat, "MaxConnectionsPerServer", key
if stat : reggetvalue dat, "MaxConnectionsPer1_0Server", key
} else {
reggetvalue dat, "MaxConnectionsPer1_0Server", key
if stat : reggetvalue dat, "MaxConnectionsPerServer", key
}
objprm 1, dat
return
*priority
http11 = 1 - http11
objsend 0, 0x00F1, http11, nouse
gosub *load
stop
*change
int dat
if dat < 1 {
dialog "「1」以上の値を設定してください"
gosub *load
} else {
dialog "同時DL上限数を「" + dat + "」に変更してよろしいですか?", 2
if stat = 6 {
if http11 {
regsetnum "MaxConnectionsPerServer", dat, key, 4
} else {
regsetnum "MaxConnectionsPer1_0Server", dat, key, 4
}
dialog "変更完了"
} else {
gosub *load
}
}
stop
*exit
regclose key
|