@echo off
title 注册控件
::goto zcerror
::取消了Excel版本强制检查，因为这个检查结果可能有问题。
CLS

echo.
echo .....................【第零步：环境检测】....................................
echo.

echo %~dp0 | findstr "Tem" && (echo 请解压后再使用。
pause
exit
) || echo 文件已解压。




::获取当前excel版本号。
echo 正在检测环境...
echo.
set Ever=0
for /l %%a in (8,1,16) do (
for /f "tokens=*" %%i in ('reg query "HKEY_CURRENT_USER\Software\Microsoft\Office\%%a.0\Word\Options" /v "PROGRAMDIR"') do (if not "%%i"=="" set Ever=%%a)) 
::cls
echo 系统当前excel版本是：%Ever%.0

if %Ever% LSS 12 (
echo.
echo office版本过低，请安装office07及以上。如果已安装，请忽略此消息。)

::if %Ever% LSS 12 (
::echo.
::echo office版本过低，请安装office07及以上。
::start 安装过程.txt
::pause
::exit)

echo.
echo 正在检测excel进程...
::关闭excel进程。
::检查是否有excel进程。有的话提示关闭。
for /f %%i in ('tasklist') do (if /i "%%i"=="excel.exe" (
echo 请关闭所有表格后再进行操作，否则会造成安装失败！
pause))
for /f %%i in ('tasklist') do (if /i "%%i"=="excel.exe" (
echo 仍有excel表尚未关闭，安装中断！请关闭所有表格，并重新打开此文件。
pause
exit
))
echo.
echo 环境检测结果：一切正常！
@ping -n 1 127.180.14.45>nul

















::判断win7还是xp，xp则跳过此步骤。

Wmic OS Get Caption|Find /i "Windows XP">nul&&goto xp
Wmic OS Get Caption|Find /i "Windows 7">nul&&echo 当前系统：win7
Wmic OS Get Caption|Find /i "Windows 8">nul&&echo 当前系统：win8
Wmic OS Get Caption|Find /i "Windows 10">nul&&echo 当前系统：win10

:win7


ECHO.
:: 正在获取批处理文件管理员权限...
echo.
:init
setlocal DisableDelayedExpansion
set "batchPath=%~0"
for %%k in (%0) do set batchName=%%~nk
set "vbsGetPrivileges=%temp%\OEgetPriv_%batchName%.vbs"
setlocal EnableDelayedExpansion
:checkPrivileges
NET FILE 1>NUL 2>NUL
if '%errorlevel%' == '0' ( goto gotPrivileges ) else ( goto getPrivileges )
:getPrivileges
if '%1'=='ELEV' (echo ELEV & shift /1 & goto gotPrivileges)
ECHO.
ECHO ********************************
ECHO 请求 UAC 权限批准……
ECHO ********************************
ECHO Set UAC = CreateObject^("Shell.Application"^) > "%vbsGetPrivileges%"
ECHO args = "ELEV " >> "%vbsGetPrivileges%"
ECHO For Each strArg in WScript.Arguments >> "%vbsGetPrivileges%"
ECHO args = args ^& strArg ^& " "  >> "%vbsGetPrivileges%"
ECHO Next >> "%vbsGetPrivileges%"
ECHO UAC.ShellExecute "!batchPath!", args, "", "runas", 1 >> "%vbsGetPrivileges%"
"%SystemRoot%\System32\WScript.exe" "%vbsGetPrivileges%" %*
exit /B
:gotPrivileges
setlocal & pushd .
cd /d %~dp0
if '%1'=='ELEV' (del "%vbsGetPrivileges%" 1>nul 2>nul  &  shift /1)
:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
::     以下为需要运行的批处理文件代码     ::
:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::

::...................检测是否管理员打开的................
echo 正在检查管理员权限...
echo.
setlocal EnableDELAYEDEXPANSION
set UAC=0
For /f "usebackq delims==" %%i In (`tasklist /fi "WINDOWTITLE eq 管理员:  注册控件"`) Do (
set "cmdline=%%i"
set "cmdline=!cmdline:~0,7!"
if "!cmdline!" == "cmd.exe" ( 
set UAC=1
)
)

if "%UAC%" == "1" (
echo 正在以管理员身份运行当前批处理。
goto guanliyuan
) else (
echo 请关闭此窗口后，右击，以管理员身份运行当前批处理。
)

:End
pause
exit
:guanliyuan
echo.
::...................




:xp

cls
echo.
echo .....................【第一步：注册dll】....................................
echo.
echo 运行此安装之前，请先解压到文件夹，并关闭所有excel表。
echo.
echo xp系统，直接双击此文件打开。win7及以上，请右击此文件，以管理员打开。
echo.













echo 正在复制和注册dll文件...
echo.
echo 如果360杀毒软件提示，请点击提示窗口中右下角“更多—允许”。
echo.

if /i "%PROCESSOR_IDENTIFIER:~0,3%"=="X86" (goto reg32) ELSE goto reg64

:reg64
cd %~dp0
Copy /y "%~dp0\xiaoluo81.dll" %systemdrive%\windows\syswow64\xiaoluo81.dll
echo.
if %errorlevel% ==1 (
echo 复制失败，请先关闭所有excel表，再重新执行此文件。
pause
exit
)

if not exist %systemdrive%\windows\syswow64\oleaut32.dll (
Copy /y %~dp0\oleaut32.dll %systemdrive%\windows\syswow64\oleaut32.dll)



if exist %systemdrive%\windows\syswow64\xiaoluo81.dll (goto next1) else (
echo dll文件未能成功复制，请打开帮助文件，进行手动复制、注册。
start %systemdrive%\windows\syswow64
start 手动安装注册.txt

pause
exit)

:next1
echo 正在注册dll...
echo.
cd %systemdrive%\windows\syswow64\
regsvr32 /u /s %systemdrive%\windows\syswow64\xiaoluo81.dll
regsvr32 /s %systemdrive%\windows\syswow64\xiaoluo81.dll

if %errorlevel% NEQ 0 (
echo 注册dll失败，请手动注册。
echo.
echo 如果提示注册dll失败，可能是杀毒软件阻止，请先关闭杀毒软件（如：360杀毒、360安全卫士），再执行“安装.bat”。

start %systemdrive%\windows\syswow64
start 手动安装注册.txt
pause
) else (echo 注册dll成功。)

regsvr32 /s %systemdrive%\windows\syswow64\oleaut32.dll


goto 第二步


:reg32
cd %~dp0
Copy /y %~dp0\xiaoluo81.dll %systemdrive%\windows\system32\xiaoluo81.dll

if %errorlevel% NEQ 0 (
echo 复制失败，请先关闭所有excel表，再重新执行此文件。
pause
exit
)

if not exist %systemdrive%\windows\system32\oleaut32.dll (
Copy /y %~dp0\oleaut32.dll oleaut32.dll %systemdrive%\windows\system32\oleaut32.dll)


echo 正在注册dll...
echo.
if exist %systemdrive%\windows\system32\xiaoluo81.dll (goto next2) else (
echo dll文件未能成功复制，请打开帮助文件，进行手动复制、注册。
start %systemdrive%\windows\system32
start 手动安装注册.txt
pause
exit)

:next2
echo 如果提示“xiaoluo81.dll 中的 DllRegisterserver 成功”，请点确定后按步骤操作：
regsvr32 /u /s %systemdrive%\windows\system32\xiaoluo81.dll
regsvr32 %systemdrive%\windows\system32\xiaoluo81.dll

if %errorlevel% NEQ 0 (
echo 注册dll失败，请手动注册。
start %systemdrive%\windows\system32\
start 手动安装注册.txt
pause
) else (echo 注册dll成功。)

regsvr32 /s %systemdrive%\windows\system32\oleaut32.dll
echo.


:第二步
@ping -n 1 127.180.14.45>nul
cls
echo.
echo .....................【第二步：设置excel】....................................
echo.


echo 正在设置excel表...

reg add "HKEY_CURRENT_USER\Software\Microsoft\Office\%Ever%.0\Excel\Security" /v "VBAWarnings" /t REG_DWORD /d "1" /f>nul
echo.
echo 已启用excel宏。
reg add "HKEY_CURRENT_USER\Software\Microsoft\Office\%Ever%.0\Excel\Security" /v "AccessVBOM" /t REG_DWORD /d "1" /f>nul
echo.
echo 已勾选信任对vba工程对象模型的访问。
echo.
echo 安装已完成。
echo.
@ping -n 1 127.180.14.45>nul

cls
echo.
echo .....................【第三步：表中安装】...................................
echo.

echo 即将打开清单工具表，执行自动安装...
echo.
echo ▁▂▃【※重要提示※】▃▂▁
echo.
echo WPS软件会和office冲突，造成打开慢，功能按钮失效等问题。
echo.
echo 所以使用此工具时，一定要关闭WPS软件，切记，切记！
echo.
echo 自动安装完成后，可以点击表中“注册”按钮或插入加密狗，开始使用吧。
echo.
cd /d %~dp0
@ping -n 1 127.180.14.45>nul
start 小罗金税3.0版发票清单工具1805.xlsm
cd /d %~dp0 
@ping -n 5 127.180.14.45>nul
del null
exit

:zcerror
cls
echo.
echo 注册dll失败，您可以按下面2种方法操作：
echo.
echo 一.1.先关闭杀毒软件，（如：360杀毒、360安全卫士），
echo.
echo    2.把压缩包 解压到 文件夹里。
echo.
echo    3.xp系统，直接双击 安装.bat
echo      win7和以上，右击 安装.bat，以管理员运行。
echo.
if /i "%PROCESSOR_IDENTIFIER:~0,3%"=="X86" (goto er_32) ELSE (goto er_64)
:er_32
echo 二.32位系统安装方法：
echo   1.把安装包解压到文件夹
echo   2.复制里面的 xiaoluo81.dll 到c:\windows\system32 文件夹内
echo   3.在c:\windows\system32 文件夹，找到cmd.exe，右击，以管理员运行，
echo     输入regsvr32.exe xiaoluo81.dll
echo   4.打开小罗金税3.0版发票清单工具.xlsm
echo      依次点击：菜单-excel选项-信任中心-信任中心设置-宏设置
echo      a.启用所有宏，b.勾选 信任对vba工程对象模型的访问。一路点确定。
echo      如果仍提示宏不可用，请关闭后，重新用excel打开。
echo   5.点击注册按钮，录入注册码，或直接插入加密狗，就可以使用了。
@ping -n 600 127.0.0.1>nul
pause

:er_64
echo 二.64位电脑安装方法：
echo   1.把安装包解压到文件夹
echo   2.复制里面的 xiaoluo81.dll 到c:\windows\syswow64 文件夹内
echo   3.在c:\windows\syswow64 文件夹内，找到cmd.exe，右击，以管理员运行，
echo     输入regsvr32.exe xiaoluo81.dll
echo   4.打开小罗金税3.0版发票清单工具.xlsm
echo      依次点击：菜单-excel选项-信任中心-信任中心设置-宏设置
echo      a.启用所有宏，b.勾选 信任对vba工程对象模型的访问。一路点确定。
echo      如果仍提示宏不可用，请关闭后，重新用excel打开。
echo   5.点击注册按钮，录入注册码，或直接插入加密狗，就可以使用了。
@ping -n 600 127.0.0.1>nul
pause
