在win7里 修改注册表 让excel独占进程
2012-12-03 16:21
232 查看
http://www.comeitbar.com/news/4494.html
Excel2010\2007 在一个窗口打开文件的本意原是为了节省内存。但是很多使用 Windows 7 的同学还是喜欢两个窗口一拉一靠左右排列,既便于比较,也不妨碍操作。问题是,打开多个 excel 文件时,它总是显示在一个窗口中啊,怎样在不同的窗口中打开文件呢?
Excel2010\2007 在一个窗口打开文件的本意原是为了节省内存。但是很多使用 Windows 7 的同学还是喜欢两个窗口一拉一靠左右排列,既便于比较,也不妨碍操作。问题是,打开多个 excel 文件时,它总是显示在一个窗口中啊,怎样在不同的窗口中打开文件呢?
比较安全的方法嘛,就是直接从开始菜单中再次打开 Excel 程序,然后在新的 Excel 程序中使用“文件-打开”来打开文件。等于是打开了一个新的 excel.exe 进程。(更绝的方法就是直接在任务栏上鼠标中键单击 Excel 程序图标打开一个新的程序)
不过,如果你机器内存很多,又想一劳永逸地改变的话,可以试试下面这个方法。
1.使用快捷键组合“Win+R”调出运行命令框,键入 regedit.exe,回车,打开注册表编辑器。
若弹出用户账户控制窗口,询问“您要允许以下程序对此计算机进行更改吗?”请点“是”以继续。
2.备份注册表
提示: 如果注册表修改不当可能会出现严重的问题。因此,请确保您认真执行这些步骤。为增加保护,请修改之前备份注册表。
定位到注册表键值:HKEY_CLASSES_ROOT\Excel.Sheet.12\shell\Open
右击,选择“导出”。
在修改之前,我们先为其做一下备份。
做好备份后,就可以大胆修改了。
3.修改 Open\command 值。
展开“Open\command”,在右边细节窗口:
双击打开“默认”,将其键值改为"C:\Program Files\Microsoft Office\Office14\EXCEL.EXE" "%1"
(如果您使用的是 Office 2007, 把 Office 14 改为 Office 12。另外,千万不要丢了引号)
然后,双击 command,将鼠标光标移到数值数据最后,用"%1"代替/dde
(如果使用的是 Office 2007, 用"%1"代替/e)
重命名 Open\ddeexec。选中“ddeexec”,右击,选择“重命名”。
为其取个新名字,例如“ddeexec2”。
4.用相同的办法,对 HKEY_CLASSES_ROOT\Excel.Sheet.8\shell\Open 进行备份和修改。
现在是不是能在单独的窗口中打开 Excel 文件呢?
=============================================================================================================================
http://club.excelhome.net/thread-657901-1-1.html
Excel2010\2007 在一个窗口打开文件的本意原是为了节省内存。但是很多使用 Windows 7 的同学还是喜欢两个窗口一拉一靠左右排列,既便于比较,也不妨碍操作。问题是,打开多个 excel 文件时,它总是显示在一个窗口中啊,怎样在不同的窗口中打开文件呢?
Excel2010\2007 在一个窗口打开文件的本意原是为了节省内存。但是很多使用 Windows 7 的同学还是喜欢两个窗口一拉一靠左右排列,既便于比较,也不妨碍操作。问题是,打开多个 excel 文件时,它总是显示在一个窗口中啊,怎样在不同的窗口中打开文件呢?
比较安全的方法嘛,就是直接从开始菜单中再次打开 Excel 程序,然后在新的 Excel 程序中使用“文件-打开”来打开文件。等于是打开了一个新的 excel.exe 进程。(更绝的方法就是直接在任务栏上鼠标中键单击 Excel 程序图标打开一个新的程序)
不过,如果你机器内存很多,又想一劳永逸地改变的话,可以试试下面这个方法。
1.使用快捷键组合“Win+R”调出运行命令框,键入 regedit.exe,回车,打开注册表编辑器。
若弹出用户账户控制窗口,询问“您要允许以下程序对此计算机进行更改吗?”请点“是”以继续。
2.备份注册表
提示: 如果注册表修改不当可能会出现严重的问题。因此,请确保您认真执行这些步骤。为增加保护,请修改之前备份注册表。
定位到注册表键值:HKEY_CLASSES_ROOT\Excel.Sheet.12\shell\Open
右击,选择“导出”。
在修改之前,我们先为其做一下备份。
做好备份后,就可以大胆修改了。
3.修改 Open\command 值。
展开“Open\command”,在右边细节窗口:
双击打开“默认”,将其键值改为"C:\Program Files\Microsoft Office\Office14\EXCEL.EXE" "%1"
(如果您使用的是 Office 2007, 把 Office 14 改为 Office 12。另外,千万不要丢了引号)
然后,双击 command,将鼠标光标移到数值数据最后,用"%1"代替/dde
(如果使用的是 Office 2007, 用"%1"代替/e)
重命名 Open\ddeexec。选中“ddeexec”,右击,选择“重命名”。
为其取个新名字,例如“ddeexec2”。
4.用相同的办法,对 HKEY_CLASSES_ROOT\Excel.Sheet.8\shell\Open 进行备份和修改。
现在是不是能在单独的窗口中打开 Excel 文件呢?
=============================================================================================================================
(已解决)用代码实现每一个打开的excel独占一个excel进程
这样考虑是为了实现开发的excel文件保持个体特征,而不被后面打开的excel所干涉(如窗口覆盖等)通过修改注册表的方式可以实现独进程
以下代码在xp和07测试通过,可以实现后续打开的excel独占各自的进程,由此实现开发的excel保持较大程度独立. Const HKEY_CLASSES_ROOT = -2147483648# Const HKEY_CURRENT_USER = -2147483647# Const HKEY_LOCAL_MACHINE = -2147483646# Const HKEY_USERS = -2147483645# Const REG_SZ = 1& '字符串值 Const REG_BINARY = 3& '二进制值 Const REG_DWORD = 4& 'DWORD Declare Function RegCreateKey Lib "advapi32.dll " Alias "RegCreateKeyA" (ByVal hKey As Long, ByVal lpSubKey As String, ByRef phkResult As Long) As Long Declare Function RegCloseKey Lib "advapi32.dll " (ByVal hKey As Long) As Long Declare Function RegSetValueEx Lib "advapi32.dll " Alias "RegSetValueExA" (ByVal hKey As Long, ByVal lpValueName As String, ByVal Reserved As Long, ByVal dwType As Long, ByVal lpData As Any, ByVal cbData As Long) As Long '创建或改变一个键值,lpData应由缺省的ByRef型改为ByVal型 Private Declare Function RegDeleteValue Lib "advapi32.dll " Alias "RegDeleteValueA" (ByVal hKey As Long, ByVal lpValueName As String) As Long '删除一个键值 Private Declare Function RegDeleteKey Lib "advapi32.dll " Alias "RegDeleteKeyA " (ByVal hKey As Long, ByVal lpSubKey As String) As Long '删除一个主键 Sub Main1() Dim nKeyHandle As Long, nValueType As Long, nLength As Long Dim sValue As String sValue = "" Call RegCreateKey(HKEY_LOCAL_MACHINE, "SOFTWARE\Classes\Excel.Sheet.12\shell\Open\ddeexec", nKeyHandle) Call RegDeleteValue(nKeyHandle, "") '删除值 Call RegCloseKey(nKeyHandle) End Sub Sub Main2() Dim nKeyHandle As Long, nValueType As Long, nLength As Long Dim sValue As String sValue = Chr(34) & "C:\Program Files\Microsoft Office\Office12\EXCEL.EXE" & Chr(34) & " /e " & Chr(34) & "%1" & Chr(34) Call RegCreateKey(HKEY_LOCAL_MACHINE, "SOFTWARE\Classes\Excel.Sheet.12\shell\Open\command", nKeyHandle) Call RegSetValueEx(nKeyHandle, "", 0, REG_SZ, sValue, 100) '""表示默认值 'Call RegSetValueEx(nKeyHandle, "My Value", 0, REG_SZ, sValue, 255) 'Call RegDeleteKey(HKEY_CURRENT_USER, "New Registry Key ") 'Call RegDeleteValue(nKeyHandle, "") '删除值 Call RegCloseKey(nKeyHandle) End Sub |
以下代码在xp和07测试通过,可以实现后续打开的excel独占各自的进程,由此实现开发的excel保持较大程度独立. Const HKEY_CLASSES_ROOT = -2147483648# Const HKEY_CURRENT_USER = -2147483647# Const HKEY_LOCAL_MACHINE = -2147483646# Const HKEY_USERS = -2147483645# Const REG_SZ = 1& '字符串值 Const REG_BINARY = 3& '二进制值 Const REG_DWORD = 4& 'DWORD Declare Function RegCreateKey Lib "advapi32.dll " Alias "RegCreateKeyA" (ByVal hKey As Long, ByVal lpSubKey As String, ByRef phkResult As Long) As Long Declare Function RegCloseKey Lib "advapi32.dll " (ByVal hKey As Long) As Long Declare Function RegSetValueEx Lib "advapi32.dll " Alias "RegSetValueExA" (ByVal hKey As Long, ByVal lpValueName As String, ByVal Reserved As Long, ByVal dwType As Long, ByVal lpData As Any, ByVal cbData As Long) As Long '创建或改变一个键值,lpData应由缺省的ByRef型改为ByVal型 Private Declare Function RegDeleteValue Lib "advapi32.dll " Alias "RegDeleteValueA" (ByVal hKey As Long, ByVal lpValueName As String) As Long '删除一个键值 Private Declare Function RegDeleteKey Lib "advapi32.dll " Alias "RegDeleteKeyA " (ByVal hKey As Long, ByVal lpSubKey As String) As Long '删除一个主键 Sub Main1() Dim nKeyHandle As Long, nValueType As Long, nLength As Long Dim sValue As String sValue = "" Call RegCreateKey(HKEY_LOCAL_MACHINE, "SOFTWARE\Classes\Excel.Sheet.12\shell\Open\ddeexec", nKeyHandle) Call RegDeleteValue(nKeyHandle, "") '删除值 Call RegCloseKey(nKeyHandle) End Sub Sub Main2() Dim nKeyHandle As Long, nValueType As Long, nLength As Long Dim sValue As String sValue = Chr(34) & "C:\Program Files\Microsoft Office\Office12\EXCEL.EXE" & Chr(34) & " /e " & Chr(34) & "%1" & Chr(34) Call RegCreateKey(HKEY_LOCAL_MACHINE, "SOFTWARE\Classes\Excel.Sheet.12\shell\Open\command", nKeyHandle) Call RegSetValueEx(nKeyHandle, "", 0, REG_SZ, sValue, 100) '""表示默认值 'Call RegSetValueEx(nKeyHandle, "My Value", 0, REG_SZ, sValue, 255) 'Call RegDeleteKey(HKEY_CURRENT_USER, "New Registry Key ") 'Call RegDeleteValue(nKeyHandle, "") '删除值 Call RegCloseKey(nKeyHandle) End Sub |
http://club.excelhome.net/thread-657901-1-1.html
相关文章推荐
- Win7:修改注册表来更改“桌面”、“我的文档”、“收藏夹”的位置
- win7下利用注册表修改cmd命令行默认路径
- 【技术贴】注册表修改Win7默认字体为XP新宋体!!注册表修改字体。
- Win7注册表怎么锁定及解锁避免注册表被错误修改
- [转]win7右键菜单注册表修改&win7添加dos命令到右键
- Win7禁止远程修改注册表杜绝他人控制修改电脑
- winxp下简单实现注册表修改、进程创建监控
- 一个杀进程同时修改注册表的vb脚本
- Win7 修改Winlogon.exe进程代码
- WIN7重启后修改的注册表被还原
- VB.NET在Webbrowser容器内显示EXCEL、WORD,需要修改注册表
- Win7下解决修改注册表 返回ERROR_ACCESS_DENIED 的错误--解决办法 MFC
- python修改注册表终止360进程实例
- win7关联图标手动修改注册表
- Win7中通过修改注册表自定义开机登陆界面的背景图片图文教程
- win7注册表修改默认浏览器
- 【修改注册表加快WIN7开关机速度】
- Win7 修改Winlogon.exe进程代码
- win7中如何通过修改注册表设置默认浏览器
- Win7,Vista UAC下应用程序标注为“需要管理员权限”的四种方法(可以修改注册表)