直接上源码
要求获取管理员权限
卸载时可以只有卸载按钮,修复按钮灰色显示
@echo off
pushd “%CD%”
cd /d “%~dp0”
nul 2>&1 “%SYSTEMROOT%\system32\cacls.exe” “%SYSTEMROOT%\system32\config\system”
if ‘%errorlevel%’ NEQ ‘0’ (
REM echo Requesting administrative privileges…
goto UACPrompt
) else (
goto gotAdmin
)
:UACPrompt
echo Set UAC = CreateObject(“Shell.Application”) > “%temp%\getadmin.vbs”
echo UAC.ShellExecute “%~s0”, “”, “”, “runas”, 1 >> “%temp%\getadmin.vbs”
“%temp%\getadmin.vbs”
exit /B
:gotAdmin
if exist “%temp%\getadmin.vbs” (
del “%temp%\getadmin.vbs”
)
pushd “%CD%”
cd /d “%~dp0”
SET SHORTCUT_NAME=CE
SET TARGET_PATH=“C:\Program Files\BS\CE\CE.exe”
SET WorkingDir_PATH=C:\Program Files\BS\CE
REM SET ICON_PATH=“C:\Program Files\BS\CE\CE.ico”
SET DESKTOP_PATH=%USERPROFILE%\Desktop
SET DESKTOPINK_PATH=“%USERPROFILE%\Desktop\CE.lnk”
if exist %TARGET_PATH% (
echo Directory exists;
if not exist %DESKTOPINK_PATH% (
echo Directory exists,%SHORTCUT_NAME% Ink not exit, Need Create;
powershell “$ws = New-Object -ComObject WScript.Shell; $s = $ws.CreateShortcut(‘%DESKTOP_PATH%%SHORTCUT_NAME%.lnk’); $s.TargetPath = ‘%TARGET_PATH%’; $s.WorkingDirectory = ‘%WorkingDir_PATH%’; $s.Save()”
) else (
echo %SHORTCUT_NAME% Directory exists,Ink exit;
)
) else (
echo %SHORTCUT_NAME% Directory not exists;
)
SET SHORTCUT_NAME=DV
SET TARGET_PATH=“C:\Program Files\BS\CE\DV\DV.exe”
SET WorkingDir_PATH=C:\Program Files\BS\CE\DV
REM SET ICON_PATH=“C:\Program Files\BS\CE\DV\DV.ico”
SET DESKTOP_PATH=%USERPROFILE%\Desktop
SET DESKTOPINK_PATH=“%USERPROFILE%\Desktop\DV.lnk”
if exist %TARGET_PATH% (
echo Directory exists;
if not exist %DESKTOPINK_PATH% (
echo Directory exists,%SHORTCUT_NAME% Ink not exit, Need Create;
powershell “$ws = New-Object -ComObject WScript.Shell; $s = $ws.CreateShortcut(‘%DESKTOP_PATH%%SHORTCUT_NAME%.lnk’); $s.TargetPath = ‘%TARGET_PATH%’; $s.WorkingDirectory = ‘%WorkingDir_PATH%’; $s.Save()”
) else (
echo %SHORTCUT_NAME% Directory exists,Ink exit;
)
) else (
echo %SHORTCUT_NAME% Directory not exists;
)
set “regPath=HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\CE”
set “valueName=NoModify”
set “valueData=1”
set “valueType=REG_DWORD”
REM 检查是否以管理员身份运行
net session >nul 2>&1
if %errorlevel% NEQ 0 (
echo 请以管理员身份运行此脚本。
REM exit /b 1
)
REM 修改注册表项
reg add “%regPath%” /v “%valueName%” /t %valueType% /d “%valueData%” /f
REM 检查操作是否成功
if %errorlevel% EQU 0 (
echo 成功修改注册表项。
) else (
echo 修改注册表项失败。
)