|
新建文本文件,将下面内容复制粘贴进去,保存为【添加显示桌面.cmd】文件,执行后可在任务栏固定显示桌面按钮。
@echo off
:QuanXian
::为当前批处理脚本获取管理员权限。
1>nul 2>nul reg query HKU\S-1-5-19
if %errorlevel%==0 goto :Admin
pushd %~DP0 & cd /d "%~dp0"
%1 %2
mshta vbscript:createobject("shell.application").shellexecute("%~s0","goto :Admin","","runas",1)(window.close)&goto :eof
:Admin
::切换当前目录至批处理文件所在位置。
cd /d %~dp0
::开启延迟环境变量扩展。
setlocal EnableDelayedExpansion
::参数变量初始化。
::⑴固定到任务栏的【显示桌面】功能文件的文件名(可根据个人习惯修改)。
set FileName=显示桌面
::⑵固定到任务栏的【显示桌面】功能文件的位置(可根据个人习惯修改)。
set FilePath=%windir%
::⑶固定到任务栏的快捷方式存储位置(操作系统的默认设置一般不做修改)。
set PinPath=%UserProfile%\AppData\Roaming\Microsoft\Internet Explorer\Quick Launch\User Pinned\TaskBar
::⑷根据前面三项变量,设置相关变量。
set ExeFile=%FilePath%\%FileName%.exe
set ScfFile=%FilePath%\%FileName%.scf
set ShortcutName=%FileName%.lnk
set ShortcutFile=%PinPath%\%ShortcutName%
:ZhuJieMian
::清理屏幕。
cls
::设置窗口尺寸【80列20行】。
mode con cols=80 lines=16
::设置背景颜色【0黑色】、文字颜色【7白色】。
color 07
::设置窗口标题栏显示内容。
title 【脚本制作人:超能虎爸】
::显示主菜单选项。
echo.
echo ************************************************************
echo * 任务栏【显示桌面】图标添加脚本 *
echo * 【适用系统:windows 7 及以上版本】 *
echo ************************************************************
echo.
echo 本脚本添加【显示桌面】按钮过程中,会在指定位置的覆盖生成相
echo 应文件。根据现有设置,下述文件若已存在,则会被覆盖:
echo 〖1〗[%ExeFile%]
echo 〖2〗[%ScfFile%]
echo 是否继续执行脚本?【Y/N】
echo.
echo ==================================================================
echo.
choice /c yn /n /m "> 输入【Y】执行脚本,输入【N】退出操作:"
::根据选择结果【进入执行环节】或【退出脚本】。
if %errorlevel%==1 (goto :JianCha)
if %errorlevel%==2 (exit)
:JianCha
::检测是否存在同名快捷方式
if not exist "%ShortcutFile%" goto :ZhiXing
cls
echo.
echo ==================================================================
echo 检测到系统的〖任务栏固定程序〗保存位置〖TaskBar〗目录下存
echo 在同名快捷方式,是否删除该快捷方式后,再为添加〖显示桌面〗
echo 的对应快捷方式?【Y/N】
echo ==================================================================
echo.
echo 【Y】删除后继续添加(是无用残留链接无需保留)。
echo 【N】更改设定再添加(是现有的固定项目的链接)。
echo.
choice /c yn /n /m "> 请选择要进行的操作[Y/N]:"
if %errorlevel%==1 (del /f /s /q "%ShortcutFile%" >nul)
if %errorlevel%==2 (goto :ZhuJieMian)
:ZhiXing
::生成一个用于固定目标的【显示桌面.exe】文件。
echo. >"%ExeFile%"
::将【显示桌面.exe】固定到任务栏。
::增加固定到任务栏的临时右键菜单。
mshta VBScript:Execute("Set ObjShell=CreateObject(""WScript.Shell""):ObjShell.RegWrite ""HKEY_CURRENT_USER\Software\Classes\*\shell\{:}\ExplorerCommandHandler"", ObjShell.RegRead(""HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CommandStore\shell\Windows.taskbarpin\ExplorerCommandHandler""), ""REG_SZ"":close")
::用增加临时右键菜单将【显示桌面.exe】固定到任务栏。
mshta VBScript:Execute("Set ObjApp=CreateObject(""Shell.Application""):Set ObjFolder=ObjApp.Namespace(""%FilePath%\""):Set ObjFile=ObjFolder.ParseName(""%FileName%.exe""):ObjFile.InvokeVerb(""{:}""):close")
::删除增加的临时右键菜单。
mshta VBScript:Execute("Set ObjShell=CreateObject(""WScript.Shell""):ObjShell.RegDelete ""HKEY_CURRENT_USER\Software\Classes\*\shell\{:}\"":close")
::生成【显示桌面.scf】文件。
del /f /s /q "%ExeFile%" >nul
echo [Shell] >"%ScfFile%"
echo Command=2 >>"%ScfFile%"
echo IconFile=explorer.exe,3 >>"%ScfFile%"
echo. >>"%ScfFile%"
echo [Taskbar] >>"%ScfFile%"
echo Command=ToggleDesktop >>"%ScfFile%"
::修改之前生成的快捷方式到正确目标。
cd /d "%PinPath%"
mshta VBScript:Execute("Set ObjShell=CreateObject(""WScript.Shell""):Set Link=ObjShell.CreateShortcut(""%ShortcutName%""):Link.TargetPath=""%ScfFile%"":Link.WorkingDirectory=""%FilePath%"":Link.Save:close"^)
cd /d %~dp0
::提示并重启资源管理器进程使得修改操作生效
cls
echo.
echo ==================================================================
echo 本脚本添加〖显示桌面〗按钮后,为使图标显示正常,会重启资源
echo 添加〖显示桌面〗操作已完成,为使其图标显示正常,需要重启资
echo 源管理器进程,请注意保存文件以防造成损失。
echo (若不重启进程,之后自行注销或重启系统也可达到相同效果)
echo ==================================================================
echo.
echo 【Y】立即重启资源管理器进程。
echo 【N】暂不重启资源管理器进程。
echo.
choice /c yn /n /m "> 请选择要进行的操作[Y/N]:"
if %errorlevel%==2 (goto :ZhuJieMian)
taskkill /f /im explorer.exe
start explorer.exe
exit |
|