Thinkai's Blog

Autohotkey|Python|php|aardio|VOIP|IT 爱好者

2016年7月25日直播Autohotkey GUI部分视频 4055

作者为 发表

AHK直播录播

去年录的GUI部分的直播教程,抛砖引玉。当时念的单词parse,人懒就不后期修改了,见谅。

IE添加受信站点 Autohotkey 1570

作者为 发表

Autohotkey

i := 0
Loop, Reg, HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings\ZoneMap\Ranges, K
{
	ti := RegExReplace(A_LoopRegName,"Range","")
	if (ti>i)
		i := ti
}
list =
(
192.168.9.1
192.168.9.2
192.168.9.3
192.168.9.4
192.168.9.5
)
Loop, Parse, list, `n, `r
{
	if A_LoopField
	{
		i++
		RegWrite, REG_SZ, HKCU, % "SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings\ZoneMap\Ranges\Range" i, :Range, % A_LoopField
		RegWrite, REG_DWORD, HKCU, % "SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings\ZoneMap\Ranges\Range" i, http, 0x2
	}
}


通过文件对象复制二进制文件(读写) Autohotkey 8159

作者为 发表

Autohotkey

FileGetSize, size, 1.jpg
file := FileOpen("1.jpg","r")
readbytes := file.RawRead(buff,size)
file.close()
file2 := FileOpen("2.jpg","w")
writebytes := file2.RawWrite(&buff,readbytes)
file2.close()


兼容性仅测试通过在32位Autohotkey版本

GZIP_DecompressFile("test.txt", ret)
MsgBox % ret

GZIP_DecompressFile(file, ByRef ret, encoding:="utf-8"){
	body := BinArr_FromFile(file)
	VarSetCapacity(data, size := body.MaxIndex() + 1)
	DllCall("oleaut32\SafeArrayAccessData", "ptr", ComObjValue(body), "ptr*", pdata)
	DllCall("RtlMoveMemory", "ptr", &data, "ptr", pdata, "ptr", size)
	DllCall("oleaut32\SafeArrayUnaccessData", "ptr", ComObjValue(body))
	size := GZIP_DecompressBuffer(data, size)
	ret := StrGet(&data, size, encoding)
}


BinArr_FromFile(FileName) {
	oADO := ComObjCreate("ADODB.Stream")

	oADO.Type := 1 ; adTypeBinary
	oADO.Open
	oADO.LoadFromFile(FileName)
	return oADO.Read, oADO.Close
}

GZIP_DecompressBuffer( ByRef var, nSz ) { ; 'Microsoft GZIP Compression DLL' SKAN 20-Sep-2010
; Decompress routine for 'no-name single file GZIP', available in process memory.
; Forum post :  www.autohotkey.com/forum/viewtopic.php?p=384875#384875
; Modified by Lexikos 25-Apr-2015 to accept the data size as a parameter.

	; ---------- Added by tmplinshi ----------
	static hModule, _
	If !hModule {
		hModule := DllCall("LoadLibrary", "Str", "gzip.dll", "Ptr")
		_ := { base: {__Delete: "GZIP_DecompressBuffer"} }
	}
	If !_
		Return DllCall("FreeLibrary", "Ptr", hModule)
	; ---------- / Added by tmplinshi ----------

 vSz :=  NumGet( var,nsz-4 ), VarSetCapacity( out,vsz,0 )
 DllCall( "GZIP\InitDecompression" )
 DllCall( "GZIP\CreateDecompression", UIntP,CTX, UInt,1 )
 If ( DllCall( "GZIP\Decompress", UInt,CTX, UInt,&var, UInt,nsz, UInt,&Out, UInt,vsz
    , UIntP,input_used, UIntP,output_used ) = 0 && ( Ok := ( output_used = vsz ) ) )
      VarSetCapacity( var,64 ), VarSetCapacity( var,0 ), VarSetCapacity( var,vsz,32 )
    , DllCall( "RtlMoveMemory", UInt,&var, UInt,&out, UInt,vsz )
 DllCall( "GZIP\DestroyDecompression", UInt,CTX ),  DllCall( "GZIP\DeInitDecompression" )
Return Ok ? vsz : 0
}

GZIP_CompressBuffer(ByRef var, nSz ){
    static hModule, _
    If !hModule {
        hModule := DllCall("LoadLibrary", "Str", "gzip.dll", "Ptr")
        _ := { base: {__Delete: "GZIP_CompressBuffer"} }
    }
    If !_
        Return DllCall("FreeLibrary", "Ptr", hModule)
 vSz :=  NumGet( var,nsz-4 ), VarSetCapacity( out,vsz,0 )
 DllCall( "GZIP\InitCompression" )
 DllCall( "GZIP\CreateCompression", UIntP,CTX, UInt,1 )
 If ( DllCall( "GZIP\Compress", UInt,CTX, UInt,&var, UInt,nsz, UInt,&Out, UInt,vsz
    , UIntP,input_used, UIntP,output_used ) = 0 && ( Ok := ( output_used = vsz ) ) )
      VarSetCapacity( var,64 ), VarSetCapacity( var,0 ), VarSetCapacity( var,vsz,32 )
    , DllCall( "RtlMoveMemory", UInt,&var, UInt,&out, UInt,vsz )
 DllCall( "GZIP\DestroyCompression", UInt,CTX ),  DllCall( "GZIP\DeInitCompression" )
Return Ok ? vsz : 0
}


Excel简单一键求和 Autohotkey 3534

作者为 发表

Autohotkey

MButton::
xl := ComObjActive("Excel.Application")
col := xl.Selection.Address ;选择的单元格
RegExMatch(col,"\$(\w+)\$(\d*)", m)
xl.Selection.Value := "=SUM($" m1 "$1:$" m1 "$" m2-1 ")"
return


获取控件或窗口的父窗口 Autohotkey 5113

作者为 发表

Autohotkey

MouseGetPos, , , , controlclassnn ;获得一个控件
ControlGet, hwnd, Hwnd, , %controlclassnn%, A ;获得控件句柄
;WinGetClass, class, ahk_id %hwnd%
Parent=1
while Parent
Parent := DllCall("GetParent","int",hwnd),p := Parent ? Parent : p,hwnd := Parent ? Parent : hwnd ;获取最顶层父窗
WinGetClass, ParentClass, ahk_id %p%
MsgBox %ParentClass%


通过控件句柄获取控件ClassNN Autohotkey 5789

作者为 发表

Autohotkey

ControlGet, controlhwnd, hwnd, , , A ;获取控件hwnd
WinGet, mainhwnd, ID, A ;获取窗口hwnd
/*
VarSetCapacity(c,201,0)
DllCall("GetClassNameA","int",controlhwnd, "Ptr", &c, "Int", 200)  ;获取控件类
classname := StrGet(&c,200)
*/
WinGetClass, classname, ahk_id %controlhwnd%
nhwnd := 0, idx := 0
while nhwnd<>controlhwnd
{
idx++,nhwnd := DllCall("FindWindowExA","uint", mainhwnd, "uint", nhwnd, "Str", classname,"uint", 0) ;枚举该类控件,检查是否是这一个控件
if !nhwnd
break
}
classNN := classname idx


获取http-only只读cookie Autohotkey 3182

作者为 发表

Autohotkey

GetCookie(){
	static url, ua ;链接,user-agent
	if !url
		url := "http://shop.xj.189.cn:8081/xjwt_webapp/RechangeController/index.do?params=Y2hhbm5lbElkPThhODI4YjQ1NGUzZjIwMTIwMTRlNDdlYjZjYWUwMDBh&fastcode=10000321"
	if !ua
		ua := "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/535.11 (KHTML, like Gecko) Chrome/17.0.963.84 Safari/535.11 LBBROWSER"
	;设置request-header
	headers := {"Accept":"text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8","Upgrade-Insecure-Requests":"1","Accept-Encoding":"gzip,deflate","Accept-Language":"zh-CN,zh;q=0.8","Host":"shop.xj.189.cn:8081","User-Agent":ua}
	hObject:=ComObjCreate("WinHttp.WinHttpRequest.5.1")
	Try
	{
		hObject.Open("GET",url) ;get/post
		for k,v in headers ;设置请求头
		    hObject.SetRequestHeader(k, v)
		hObject.Send()
		hObject.WaitForResponse(-1)
	}
	hds := hObject.GetAllResponseHeaders() ;获取所有cookie

	cookie := ""
	Loop, Parse, hds, `n, `r
	{
		if RegExMatch(A_LoopField,"Set-Cookie:([^;]*;)",m)
			cookie .= m1
	}
	return cookie
}


POST/GET获取GZIP数据 Autohotkey 2637

作者为 发表

Autohotkey

GZURLDownloadToVar(url, Encoding = "",Method="GET",postData="",headers:=""){
	hObject:=ComObjCreate("WinHttp.WinHttpRequest.5.1")
	Try
	{
		hObject.SetTimeouts(30000,30000,300000,300000)
		hObject.Open(Method,url,True)
		if IsObject(headers)
		{
			for k,v in headers
			{
				if v
				hObject.SetRequestHeader(k, v)
			}
		}
		hObject.Send(postData)
		hObject.WaitForResponse(-1)
	}
	catch e
		return -1
	}
	GZIP_DecompressResponseBody(hObject, retHtml, Encoding)
	return retHtml
}

GZIP_DecompressBuffer(ByRef var, nSz ){
	static hModule, _
	If !hModule {
		hModule := DllCall("LoadLibrary", "Str", "gzip.dll", "Ptr")
		_ := { base: {__Delete: "GZIP_DecompressBuffer"} }
	}
	If !_
		Return DllCall("FreeLibrary", "Ptr", hModule)
 vSz :=  NumGet( var,nsz-4 ), VarSetCapacity( out,vsz,0 )
 DllCall( "GZIP\InitDecompression" )
 DllCall( "GZIP\CreateDecompression", UIntP,CTX, UInt,1 )
 If ( DllCall( "GZIP\Decompress", UInt,CTX, UInt,&var, UInt,nsz, UInt,&Out, UInt,vsz
    , UIntP,input_used, UIntP,output_used ) = 0 && ( Ok := ( output_used = vsz ) ) )
      VarSetCapacity( var,64 ), VarSetCapacity( var,0 ), VarSetCapacity( var,vsz,32 )
    , DllCall( "RtlMoveMemory", UInt,&var, UInt,&out, UInt,vsz )
 DllCall( "GZIP\DestroyDecompression", UInt,CTX ),  DllCall( "GZIP\DeInitDecompression" )
Return Ok ? vsz : 0
}

GZIP_DecompressResponseBody(ByRef oWinHttp, ByRef retHtml, encoding:="UTF-8") {
	If ( oWinHttp.GetResponseHeader("Content-Encoding") != "gzip" )
		Return True, retHtml := oWinHttp.ResponseText

	body := oWinHttp.ResponseBody
	VarSetCapacity(data, size := body.MaxIndex() + 1)
	DllCall("oleaut32\SafeArrayAccessData", "ptr", ComObjValue(body), "ptr*", pdata)
	DllCall("RtlMoveMemory", "ptr", &data, "ptr", pdata, "ptr", size)
	DllCall("oleaut32\SafeArrayUnaccessData", "ptr", ComObjValue(body))
	size := GZIP_DecompressBuffer(data, size)
	retHtml := StrGet(&data, size, encoding)
}


PHP HTTPS SSL CURL GET和POST的一个函数 1467

作者为 发表

编程

function curlPost($url,$post = true, $data = array(), $timeout = 30, $CA = true){    
     // 链接,是否使用POST方式, post数据, 超时, 验证http证书
    $cacert = getcwd() . '/cacert.pem'; //CA根证书  
    $SSL = substr($url, 0, 8) == "https://" ? true : false;  
      
    $ch = curl_init();  
    curl_setopt($ch, CURLOPT_URL, $url);  
    curl_setopt($ch, CURLOPT_TIMEOUT, $timeout);  
    curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout-2);  
    if ($SSL && $CA) {  
        curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, true);   // 只信任CA颁布的证书  
        curl_setopt($ch, CURLOPT_CAINFO, $cacert); // CA根证书(用来验证的网站证书是否是CA颁布)  
        curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 2); // 检查证书中是否设置域名,并且是否与提供的主机名匹配  
    } else if ($SSL && !$CA) {  
        curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); // 信任任何证书  
        curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 1); // 检查证书中是否设置域名  
    }  
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);  
    if ($post== true) {
    curl_setopt($ch, CURLOPT_HTTPHEADER, array('Expect:')); //避免data数据过长问题 
    curl_setopt($ch, CURLOPT_POST, true);  
    curl_setopt($ch, CURLOPT_POSTFIELDS, $data);  
    }else{
    	curl_setopt($ch, CURLOPT_HEADER, 0);
    }
    //curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($data)); //data with URLEncode  
  
    $ret = curl_exec($ch);  
    //var_dump(curl_error($ch));  //查看报错信息  
  
    curl_close($ch);  
    return $ret;    
}



友情链接:Autohotkey中文论坛Autohotkey中文帮助Autohotkey官网我的B站直播间Autohotkey中文网联系作者免GooglePlay APK下载

 主题设计 • skyfrit.com  Thinkai's Blog | 保留所有权利

43 queries in 0.746 seconds |