在win10等高版本windows中,由于UAC权限的限制,无法通过右键中的打开方式来注册动态链接库dll组件和ocx组件,也不能通过普遍cmd窗口注册,只能以管理员身份运行cmd来注册。经过摸索,找出一个用windows右键菜单来注册的方法,下面以注册dll组件为例,分享给大家。
第一步:创建注册组件用的批处理文件
将以下脚本保存为d:\myreg.bat
@echo off
>nul 2>&1 "%SYSTEMROOT%\system32\cacls.exe" "%SYSTEMROOT%\system32\config\system"
if '%errorlevel%' NEQ '0' (
echo 请求管理员权限...
goto UACPrompt
) else ( goto gotAdmin )
:UACPrompt
echo Set UAC = CreateObject^("Shell.Application"^) > "%temp%\getadmin.vbs"
echo UAC.ShellExecute "%~s0", "%1", "", "runas", 1 >> "%temp%\getadmin.vbs"
"%temp%\getadmin.vbs"
exit /B
:gotAdmin
echo 注册%1
regsvr32 "%1"
第二步:创建Windows右键菜单【注册Dll】
打开注册表,创建项“HKEY_CLASSES_ROOT\dllfile\shell\注册Dll\Command”,设置默认值为:"d:\myreg.bat" %1
这样就好了。
使用方法:
使用时,在dll或ocx文件点击鼠标右键,在弹出的菜单中选择【注册Dll】即可完成注册
延伸
发散一下下,反注册同理如上。
再延伸
注册、反注册ocx组件如上类似处理