acGetAllWindows(0) local allwindows=sp_all_windows local ewinlist={} local count=1 for k,v in pairs(allwindows) do local name=acGetClassName(v,gsx,gsy) if name=="CabinetWClass" then ewinlist[count]=v count=count+1 end end function cp(v1,v2) local t1=acGetWindowTitle(v1, gsx, gsy) local t2=acGetWindowTitle(v2, gsx, gsy) return t1< t2 end table.sort(ewinlist,cp) local shandle=acGetMonitorFromPoint(gsx,gsy) local leftx=acGetMonitorLeft(shandle,1) local rightx=acGetMonitorRight(shandle,1) local topy=acGetMonitorTop(shandle,1) local bottomy=acGetMonitorBottom(shandle,1) local height=math.abs(topy-bottomy) local width=math.abs(leftx-rightx) local columncount=2 local rowcount=math.ceil((count-1)/columncount) local windowheight=height/rowcount local windowwidth=width/columncount for i=1,count-1 do local v= ewinlist[i] acActivateWindow(v,gsx,gsy,0) acRestoreWindow(v,gsx,gsy) acSetWindowSize(v,gsx,gsy,windowwidth,windowheight) local c=i%columncount if c==0 then c= columncount end local r=math.ceil(i/columncount) acMoveWindow(v,gsx,gsy,(c-1)*windowwidth,(r-1)*windowheight) end
时间: 2024-11-02 07:49:28