Board logo

标题: [注册表类] 用批处理怎么启用Excel的插件呢 [打印本页]

作者: q995855    时间: 2023-8-19 15:00     标题: 用批处理怎么启用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
复制代码

作者: Batcher    时间: 2023-8-20 10:50

回复 1# q995855


这个启用的代码是在 HKEY_CURRENT_USER\Software\Microsoft\Office\版本\Excel\Options 下面新建了一个 OPEN 你把它删掉试试能否达到禁用的效果
例如:
reg delete HKEY_CURRENT_USER\SOFTWARE\Microsoft\Office\版本\Excel /v OPEN /f
作者: jszw666    时间: 2023-8-21 12:08

电子表格,更得学习,常用啊
作者: q995855    时间: 2023-8-23 11:08

回复 2# Batcher 没搞懂怎么改,还是不行 ,还请赐教
作者: Batcher    时间: 2023-8-23 16:48

回复 4# q995855


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

如果需要上传截图,可以找个图床,例如:
http://bbs.bathome.net/thread-60985-1-1.html
作者: Five66    时间: 2023-8-23 17:50

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
作者: q995855    时间: 2023-9-5 23:08

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




欢迎光临 批处理之家 (http://bbs.bathome.net/) Powered by Discuz! 7.2