Excel多实例单实例的注册表设置
- 格式:docx
- 大小:26.04 KB
- 文档页数:3
综合而言,所有问题的关键都在于运行的命令中是否有添加了“"%1"”。
如果没有这个参数,双击excel文件时,就不会进入多实例模式。
而如果有这个参数,就可以了。
顺着这个思路,只要能够修改注册表中xlsx和xls扩展名所对应的open操作应该就可以解决这个问题了。
参照《利用注册表设置打开方式_积微堂》,找到xls和xlsx的“打开”功能所对应的注册表项目分别是:xls:[HKEY_CLASSES_ROOT\Excel.Sheet.8\shell\Open\command]xlsx:[HKEY_CLASSES_ROOT\Excel.Sheet.12\shell\Open\command]但是,command中都分别有以下2个子项“默认”和“command”。
我先把“默认”中的“ /dde ”改为“ "%1" ”,没有效果。
然后,我注意到2个问题:1)在Open键下面还有一个ddeexec键,推测可能和“ /dde ”有关,但不知道该如何对此进行操作。
2)在command键中,“默认”项和“ command ”项,这两个到底是哪一个在双击文件的时候起作用?尤其是“ command ”项中的二进制数据也让人头晕,不知道是什么含义。
于是想在删除command项之前,先试着直接google这段二进制,竟然得到了一个韩文页面:《Lai Go's TINote Blog》,google翻译,发现是一位韩国的MVP写的内容,正是同一个问题的解决方法,nice,这下轻松了。
根据该作者的做法,关键是删除了ddeexec键,估计我此前的推测是正确的,“ /dde ”可能与这个键有关,既然如此,那就在备份后,大着胆子删吧。
问题就此解决。
操作步骤汇总一下:第1步:备份注册表键值,也就是导出了。
由于我只打算修改打开这两个文件的形式,因此仅对open键做备份和修改。
xls:[HKEY_CLASSES_ROOT\Excel.Sheet.8\shell\Open\command]xlsx:[HKEY_CLASSES_ROOT\Excel.Sheet.12\shell\Open\command]第2步:分别删除Excel.Sheet.8和Excel.Sheet.12的open下面的ddeexec。
第3步:修改Excel.Sheet.8和Excel.Sheet.12的opencommand下的command项原来的command项是:xb'BV54MKKSkEXCELFiles>u2BeT,8X[=]9==,*)Nn] /dde修改后的command项是:xb'BV54MKKSkEXCELFiles>u2BeT,8X[=]9==,*)Nn] "%1"至此搞定。
上述步骤也可以编制成注册表文件来执行,以便于切换或重装系统:多实例EXCEL.REGWindows Registry Editor Version 5.00[HKEY_CLASSES_ROOT\Excel.Sheet.8\shell\Open]@="打开(&O)"[HKEY_CLASSES_ROOT\Excel.Sheet.8\shell\Open\command]@="\"C:\\Program Files\\Microsoft Office\\Office14\\EXCEL.EXE\" /dde""command"=hex(7):78,00,62,00,27,00,42,00,56,00,35,00,21,00,21,00,21,00,21,00,\34,00,21,00,21,00,21,00,21,00,4d,00,4b,00,4b,00,53,00,6b,00,45,00,58,00,43,\00,45,00,4c,00,46,00,69,00,6c,00,65,00,73,00,3e,00,75,00,32,00,42,00,65,00,\54,00,2c,00,38,00,58,00,5b,00,3d,00,5d,00,39,00,3d,00,3d,00,2c,00,2a,00,29,\ 00,4e,00,6e,00,5d,00,20,00,22,00,25,00,31,00,22,00,00,00,00,00[-HKEY_CLASSES_ROOT\Excel.Sheet.8\shell\Open\ddeexec][HKEY_CLASSES_ROOT\Excel.Sheet.12\shell\Open]@="打开(&O)"[HKEY_CLASSES_ROOT\Excel.Sheet.12\shell\Open\command]@="\"C:\\Program Files\\Microsoft Office\\Office14\\EXCEL.EXE\" /dde" "command"=hex(7):78,00,62,00,27,00,42,00,56,00,35,00,21,00,21,00,21,00,21,00,\ 34,00,21,00,21,00,21,00,21,00,4d,00,4b,00,4b,00,53,00,6b,00,45,00,58,00,43,\ 00,45,00,4c,00,46,00,69,00,6c,00,65,00,73,00,3e,00,75,00,32,00,42,00,65,00,\ 54,00,2c,00,38,00,58,00,5b,00,3d,00,5d,00,39,00,3d,00,3d,00,2c,00,2a,00,29,\ 00,4e,00,6e,00,5d,00,20,00,22,00,25,00,31,00,22,00,00,00,00,00[-HKEY_CLASSES_ROOT\Excel.Sheet.12\shell\Open\ddeexec]单实例EXCEL.REGWindows Registry Editor Version 5.00[HKEY_CLASSES_ROOT\Excel.Sheet.8\shell\Open]@="打开(&O)"[HKEY_CLASSES_ROOT\Excel.Sheet.8\shell\Open\command]@="\"C:\\Program Files\\Microsoft Office\\Office14\\EXCEL.EXE\" /dde" "command"=hex(7):78,00,62,00,27,00,42,00,56,00,35,00,21,00,21,00,21,00,21,00,\ 34,00,21,00,21,00,21,00,21,00,4d,00,4b,00,4b,00,53,00,6b,00,45,00,58,00,43,\ 00,45,00,4c,00,46,00,69,00,6c,00,65,00,73,00,3e,00,75,00,32,00,42,00,65,00,\ 54,00,2c,00,38,00,58,00,5b,00,3d,00,5d,00,39,00,3d,00,3d,00,2c,00,2a,00,29,\ 00,4e,00,6e,00,5d,00,20,00,2f,00,64,00,64,00,65,00,00,00,00,00[HKEY_CLASSES_ROOT\Excel.Sheet.8\shell\Open\ddeexec]@="[open(\"%1\")]"[HKEY_CLASSES_ROOT\Excel.Sheet.8\shell\Open\ddeexec\application]@="Excel"[HKEY_CLASSES_ROOT\Excel.Sheet.8\shell\Open\ddeexec\topic]@="system"[HKEY_CLASSES_ROOT\Excel.Sheet.12\shell\Open]@="打开(&O)"[HKEY_CLASSES_ROOT\Excel.Sheet.12\shell\Open\command]@="\"C:\\Program Files\\Microsoft Office\\Office14\\EXCEL.EXE\" /dde" "command"=hex(7):78,00,62,00,27,00,42,00,56,00,35,00,21,00,21,00,21,00,21,00,\ 34,00,21,00,21,00,21,00,21,00,4d,00,4b,00,4b,00,53,00,6b,00,45,00,58,00,43,\ 00,45,00,4c,00,46,00,69,00,6c,00,65,00,73,00,3e,00,75,00,32,00,42,00,65,00,\ 54,00,2c,00,38,00,58,00,5b,00,3d,00,5d,00,39,00,3d,00,3d,00,2c,00,2a,00,29,\ 00,4e,00,6e,00,5d,00,20,00,2f,00,64,00,64,00,65,00,00,00,00,00[HKEY_CLASSES_ROOT\Excel.Sheet.12\shell\Open\ddeexec]@="[open(\"%1\")]"[HKEY_CLASSES_ROOT\Excel.Sheet.12\shell\Open\ddeexec\application]@="Excel"[HKEY_CLASSES_ROOT\Excel.Sheet.12\shell\Open\ddeexec\topic] @="system"。