visio 2010可以通过修改注册表实现自动多实例运行,但是excel 2010的就不行了,包括technet在内,解决的方法基本都是通过建立“excel.bat”的方式来实现。
综合而言,所有问题的关键都在于运行的命令中是否有添加了“"%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'BV5!!!!4!!!!MKKSkEXCELFiles>u2BeT,8X[=]9==,*)Nn] /dde
修改后的command项是:
xb'BV5!!!!4!!!!MKKSkEXCELFiles>u2BeT,8X[=]9==,*)Nn] "%1"
至此搞定。
上述步骤也可以编制成注册表文件来执行,以便于切换或重装系统:
多实例EXCEL.REG
Windows 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.REG
Windows 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"
转载于:https://blog.51cto.com/jacklucifer/680092