在Win7下去掉快捷方式箭头的简便手动操作

来源:互联网 发布:数据恢复大师怎么用 编辑:程序博客网 时间:2024/05/16 12:37

一直都觉得在Win7下快捷方式上的箭头看着很别扭,并且也知道网上很多方法,主要是两类,一是:修改注册表;二是:使用美化工具(估计也是修改注册表)。

作为一个科班出身的伪程序员,就想使用一个比较靠谱比较简便的方法,无后患,一刀见血,于是跑去网上搜索,最后发现了以下批处理代码:

去掉快捷方式箭头的批处理 DeleteArrow.bat

reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Shell Icons" /v 29 /d "%systemroot%\system32\imageres.dll,196" /t reg_sz /ftaskkill /f /im explorer.exeattrib -s -r -h "%userprofile%\AppData\Local\iconcache.db"del "%userprofile%\AppData\Local\iconcache.db" /f /qstart explorerpause


恢复快捷方式箭头的批处理 RecoverArrow.bat

reg delete "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Shell Icons" /v 29 /ftaskkill /f /im explorer.exeattrib -s -r -h "%userprofile%\AppData\Local\iconcache.db"del "%userprofile%\AppData\Local\iconcache.db" /f /qstart explorerpause

1. 代码解释

关于实现去掉快捷方式箭头的代码,其主要思想是并没有真正意义上去掉箭头,只是使用透明图标代替了箭头(imageres.dll中的196),这样便实现了隐藏箭头的效果。

看着网上有的方法也是使用透明图标隐藏箭头的,但是还得自己准备一张透明图标,而该方法则直接使用Win7自带的图标库,很方便很快捷。

关于DeleteArrow.bat的代码做以下解释:

  • reg add,修改注册表,添加Shell Icons子项,并让其29的注册表项值为%systemroot%\system32\imageres.dll,196(透明图标);
  • taskkill,结束进程explorer.exe,解除占用;
  • attrib,修改iconcache.db文件属性,-s系统文件属性,-r只读文件属性,-h隐藏文件属性,而iconcache.db图标缓存文件(里面是你常用软件的图标,如果你把它删掉的话,并且禁止它自动生成的话,每次你打开电脑,电脑都重新解析第个快捷方式的图标,这会花大量时间。一般来说就有显示不正常才会删除让其重建图标缓存);
  • del,删除iconcache.db,让其重建,/f强制删除只读文件,/q指定静音状态即不提示是否确认删除;
  • start,重启explorer任务管理器;
  • pause,暂停,让用户看下操作完成的状态;

2.window图标库

Windows 系统自己的默认图标(回收站、计算机、控制面板等等)都保存在系统盘(一般是C盘)的Windows/System32 文件夹里面的一些DLL文件里面——imageres.dll、shell32.dll 和 moricons.dll 等几个系统文件。

  •  moricons.dll:XP以前老风格图标,不堪入目。。。;
  • shell32.dll:XP常用图标;
  • imageres.dll:Vista和Win7风格的图标。

这份代码的原作者则巧妙的使用了imageres.dll的196的透明图标。


3.Shell Icons

注册表中Shell Icons这个子项的29这个表项代表的就是快捷方式箭头。

关于Shell Icons的各个表项值介绍如下:

0SI_UNKNOWNUnknown File Type1SI_DEF_DOCUMENTDefaultdocument2SI_DEF_APPLICATIONDefault application3SI_FOLDER_CLOSEDClosed folder4SI_FOLDER_OPENOpen folder5SI_FLOPPY_5145 1/4 floppy6SI_FLOPPY_353 1/2 floppy7SI_REMOVABLERemovable drive8SI_HDDHard disk drive9SI_NETWORKDRIVENetwork drive10SI_NETWORKDRIVE_DISCONNECTEDnetwork drive offline11SI_CDROMCD drive12SI_RAMDISKRAM disk13SI_NETWORKEntire network14?15SI_MYCOMPUTERMy Computer16SI_PRINTMANAGERPrinter Manager17SI_NETWORK_NEIGHBORHOODNetwork Neighborhood18SI_NETWORK_WORKGROUPNetwork Workgroup19SI_STARTMENU_PROGRAMSStart Menu Programs20SI_STARTMENU_DOCUMENTSStart Menu Documents21SI_STARTMENU_SETTINGSStart Menu Settings22SI_STARTMENU_FINDStart Menu Find23SI_STARTMENU_HELPStart Menu Help24SI_STARTMENU_RUNStart Menu Run25SI_STARTMENU_SUSPENDStart Menu Suspend26SI_STARTMENU_DOCKINGStart Menu Docking27SI_STARTMENU_SHUTDOWNStart Menu Shutdown28SI_SHARESharing overlay (hand)29SI_SHORTCUTShortcut overlay (small arrow)30SI_PRINTER_DEFAULTDefault printer overlay (small tick)31SI_RECYCLEBIN_EMPTYRecycle bin empty32SI_RECYCLEBIN_FULLRecycle bin full33SI_DUNDial-up Network Folder34SI_DESKTOPDesktop35SI_CONTROLPANELControl Panel36SI_PROGRAMGROUPSProgram Group37SI_PRINTERPrinter38SI_FONTFont Folder39SI_TASKBARTaskbar40SI_AUDIO_CDAudio CD41?42?43SI_FAVORITESIE favorites44SI_LOGOFFStart Menu Logoff45?46?47SI_LOCKLock48SI_HIBERNATEHibernate

根据这些表项值,便拓展出其他作用的批处理代码,有兴趣的朋友可以继续尝试折腾。