//property 窗口属性表 import win; namespace win.property; get = ::User32.api("GetPropW","int(int hWnd,ustring lpString)") set = ::User32.api("SetPropW","bool(int hWnd,ustring lpString,addr hData)") find = function(k,v,cls){ for hwnd in ..win.eachChild(,cls) { p = get(hwnd, k ); if( p && ( (v==null) || (v==p) ) ){ return hwnd; } } } enum = function(hwnd,proc){ var cb = ..raw.tostdcall(function(hwnd,prop,data){ proc(prop,data); return true; },"bool(addr hwnd,ustring prop,ptr data)") ::User32.EnumPropsEx(hwnd,cb,null); ..raw._release(cb); } /**intellisense(win.property) get(窗口句柄,"属性名__") = 获取窗体属性,返回数值 set(.(窗口句柄,属性名,数值) = 设置窗体属性 find(.(属性名,属性值,窗口类名) = 返回包含指定属性,并匹配指定属性值的窗体句柄\n如果不指定属性值则只检查键不检查值是否匹配,\n窗口类名为可选参数,支持模式匹配语法 enum(.(窗口句柄,回调函数) = @.enum(\n function(prop,data){\n return true;__/*枚举目标窗口的所有属性。\n回调参数 prop 为属性名,data 为属性值指针。*/\n } \n) end intellisense**/