//桌面图标排圆圈 //根据 4920614 代码修改 http://www.aardio.com/bbs/showtopic-9744.aspx import winex; import win.ui; /*DSG{{*/ var winform = win.form(text="桌面图标排圆圈";right=333;bottom=93;) winform.add( autoOrder={cls="button";text="恢复自动排列";left=203;top=46;right=316;bottom=72;font=LOGFONT(name='宋体');z=2}; button={cls="button";text="桌面图标排个圈圈";left=202;top=10;right=315;bottom=36;font=LOGFONT(name='宋体');z=1}; editR={cls="edit";text="300";left=119;top=12;right=170;bottom=34;edge=1;font=LOGFONT(name='宋体');z=3}; static={cls="static";text="圈圈半径(px):";left=33;top=17;right=111;bottom=33;font=LOGFONT(name='宋体');transparent=1;z=4} ) /*}}*/ //注意不支持替换了系统桌面的各种 XX 桌面。 import winex.desktop; winform.button.oncommand = function(id,event){ //取消桌面右键对齐到网格 winex.desktop.listview.setExtended(0x80000/*_LVS_EX_SNAPTOGRID*/,false); //取消桌面自动排列 winex.desktop.listview.modifyStyle(0x100/*_LVS_AUTOARRANGE*/); var scrWidth,scrHeight = win.getScreen() var centerX = scrWidth/2; var centerY = scrHeight/2; var r = math.min( tonumber(winform.editR.text), math.min(centerX,centerY) ) //桌面图标个数 var count = winex.desktop.listview.count; //相邻图标间的弧度 2π/count var rad = 2*math.pi/count; for(i=1;count ){ var x=centerX+math.floor(r*math.sin(i*rad)); var y=centerY+math.floor(r*math.cos(i*rad)); winex.desktop.listview.setItemPos(i,x,y); win.delay(10); } } //恢复自动排列 winform.autoOrder.oncommand = function(id,event){ winex.desktop.listview.modifyStyle( , 0x100/*_LVS_AUTOARRANGE*/ ); winex.desktop.listview.setExtended(0x80000/*_LVS_EX_SNAPTOGRID*/,true) } winform.show(); win.loopMessage();