//COM 类名列表 import win.ui; import win.ui.menu; import fonts.fontAwesome; /*DSG{{*/ var winform = win.form(text="系统已注册 COM 类名列表( 点列标题排序,双击列显示编辑框,右键菜单查看对象文档 )";right=1109;bottom=656;bgcolor=0xFFFFFF;) winform.add( listview={cls="listview";left=17;top=40;right=1094;bottom=640;acceptfiles=1;asel=false;bgcolor=0xFFFFFF;db=1;dl=1;dr=1;dt=1;edge=1;font=LOGFONT(name='SimSun');fullRow=1;gridLines=1;hide=1;msel=false;z=1}; plusLoading={cls="plus";left=372;top=188;right=743;bottom=450;color=15780518;db=1;dl=1;dr=1;dt=1;font=LOGFONT(h=-96;name='FontAwesome');iconStyle={font=LOGFONT(h=-96;name='FontAwesome')};iconText='\uF254';z=2}; plusSearch={cls="plus";left=690;top=6;right=1094;bottom=36;align="right";autohscroll=false;autovscroll=false;border={bottom=1;color=-4144960};dr=1;dt=1;editable=1;font=LOGFONT(h=-13);hide=1;textPadding={top=10;bottom=3};valign="top";z=3} ) /*}}*/ winform.listview.insertColumn("类名",250) winform.listview.insertColumn("CLSID",250) winform.listview.insertColumn("控件",70) winform.listview.insertColumn("描述",70) winform.listview.insertColumn("路径",-1) thread.invoke( function(winform){ import win.reg; import win.guid; winform.plusLoading.hide = false; winform.plusSearch.hide = true; winform.listview.hide = true; winform.plusLoading.disabledText = {'\uF254';'\uF251';'\uF252';'\uF253';'\uF250'} var items = {}; var progIds = {} var onOpenRegClsId = function(regClsId,clsId){ var regClsIdProgId = regClsId.open("ProgID",true) if(regClsIdProgId){ var progId = regClsIdProgId.queryValue("") if(progId && !progIds[progId]){ progIds[progId] = true; var description; var regProgId = win.regReader("HKEY_CLASSES_ROOT\"+progId) if(regProgId){ description = regProgId.queryValue(""); regProgId.close(); } var path var regServer32 = regClsId.open("InprocServer32",true) || regClsId.open("LocalServer32",true) if(regServer32){ path = regServer32.queryValue(""); regServer32.close(); } var clsIdKeys = regClsId.keys(); table.push(items,{progId;clsId; (table.find(clsIdKeys,"Control")||table.find(clsIdKeys,"ToolboxBitmap32"))?"是":"否"; description||""; path||""; }); } regClsIdProgId.close() } regClsId.close() } var clsIds = {} var reg = win.regReader("HKEY_CLASSES_ROOT\CLSID\") for(clsId,writetime in reg.eachKey() ){ if(!string.match(clsId,"%{}")){ continue ; } try{ var regClsId = reg.open(clsId,true); if(regClsId) onOpenRegClsId(regClsId,clsId); clsIds[clsId] = true; } } var reg = win.regReaderWow64("HKEY_CLASSES_ROOT\CLSID\") for(clsId,writetime in reg.eachKey() ){ if(!string.match(clsId,"%{}")){ continue ; } if(clsIds[clsId]){ continue ; } try{ var regClsId = reg.open(clsId,true); if(regClsId) onOpenRegClsId(regClsId,clsId); } } ..table.sort(items,lambda(a) owner[1]a[i]) } else { ..table.sort(itemData,lambda(a) owner[sortColumn]