[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[注册表类] 用批处理怎么启用Excel的插件呢

请教一下各位,我Excel卡住就经常会被禁用DLL文件,我想快速解除禁用后再启用这个插件,自己的电脑我就可以用批处理启用,但是不知道怎么解除禁用,但是我换一台电脑用的是2016就无效了,不知道是不是注册列表不一样。我需要在2010以上的版本都通用,就是不知道怎么改,请教一下各位。
代码如下:
  1. @echo off
  2. setlocal EnableExtensions EnableDelayedExpansion
  3. rem 检测Excel安装路径
  4. for /f "tokens=3" %%i in ('reg query "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\ClickToRun\Configuration" /v "ProductReleaseIDs"') do (
  5.     set "version=%%i"
  6. )
  7. if not defined version (
  8.     echo Could not determine installed Excel version.
  9.     pause
  10.     exit /b 1
  11. )
  12. rem 检测CE card文件夹路径
  13. set "ce_card_path=C:\Windows\SysWOW64\CE card"
  14. if not exist "%ce_card_path%" (
  15.     echo CE card folder not found.
  16.     pause
  17.     exit /b 1
  18. )
  19. rem 添加workbook32.dll
  20. set "dll_path=%ce_card_path%\workbook32.dll"
  21. if exist "%dll_path%" (
  22.     regsvr32 /s "%dll_path%"
  23.     echo Successfully added workbook to Excel COM add-ins.
  24. ) else (
  25.     echo %dll_path% not found.
  26. )
  27. rem 添加workbook64.dll
  28. set "dll_path=%ce_card_path%\workbook64.dll"
  29. if exist "%dll_path%" (
  30.     regsvr32 /s "%dll_path%"
  31.     echo Successfully added workbook to Excel COM add-ins.
  32. ) else (
  33.     echo %dll_path% not found.
  34. )
  35. rem 启用workbook加载项
  36. set "progid=workbook"
  37. set "version=%version:.=.%"
  38. set "reg_key=HKEY_CURRENT_USER\Software\Microsoft\Office\%version%\Excel\Options"
  39. reg add "%reg_key%" /v "OPEN" /t REG_SZ /d "!%progid! /r" /f >nul
  40. if errorlevel 1 (
  41.     echo Failed to enable workbook COM add-in.
  42. ) else (
  43.     echo Successfully enabled workbook COM add-in.
  44. )
  45. echo Done.
  46. pause
复制代码

回复 1# q995855


这个启用的代码是在 HKEY_CURRENT_USER\Software\Microsoft\Office\版本\Excel\Options 下面新建了一个 OPEN 你把它删掉试试能否达到禁用的效果
例如:
reg delete HKEY_CURRENT_USER\SOFTWARE\Microsoft\Office\版本\Excel /v OPEN /f
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

电子表格,更得学习,常用啊

TOP

回复 2# Batcher 没搞懂怎么改,还是不行 ,还请赐教

TOP

回复 4# q995855


1、执行顶楼的代码
2、打开注册表编辑器,找到 HKEY_CURRENT_USER\Software\Microsoft\Office\版本\Excel\Options
3、截图发出来

如果需要上传截图,可以找个图床,例如:
http://bbs.bathome.net/thread-60985-1-1.html
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

1楼代码5-7行是查找注册表的版本号并设置版本号
8-11行是找不到版本号就显示错误信息并退出

你可以试试像1楼代码9-11行改成像第6行那样,然后看行不行
例如9-11行改成:set "version=16.0"

版本号参考下面的:
记录一下 Office的版本号,开发时候用到,信息来源于:https://en.wikipedia.org/wiki/Hi ... _Office#cite_note-2

可以注意到一个十分有趣的地方,从Office 2007 到 Office 2010 ,office版本号从 12.0 变到了 14.0,中间缺了13.0。
Title/version         Release Year
Office 1.0         1999
Office 1.5         1991
Office 1.6         1991
Office 3.0         1992
Office 4.0         1994
Office 4.3         1994
Office for NT 4.2         1994
Office 95(7.0)         1995
Office 97(8.0)         1996
Office 97 Powered by Word 98 (8.5)         1997
Office 2000(9.0)         1999
Office XP(10.0)         2001
Office 2003(11.0)         2003
Office 2007(12.0)         2007
Office 2010(14.0)         2010
Office 2013(15.0)         2013
Office 2016(16.0)         2015

TOP

经过多次反复查找跟禁用测试,发现删除OPEN这个是无效的,禁用项还是会存在,只能手动启用才行,有其它解决办法吗?

TOP

返回列表