标题: [系统相关] [已解决]批处理如何给lnk快捷方式文件添加快捷键/热键和更改显示图标? [打印本页]
作者: ygqiang 时间: 2015-4-2 19:05 标题: [已解决]批处理如何给lnk快捷方式文件添加快捷键/热键和更改显示图标?
本帖最后由 pcl_test 于 2016-6-5 11:26 编辑
[已解决]bat批处理,如何给lnk文件添加快捷键?比如CTRL+SHIFT+L
作者: pcl_test 时间: 2015-4-2 19:16
本帖最后由 pcl_test 于 2015-4-2 20:51 编辑
回复 1# ygqiang - set "back_d=C:\WINDOWS\system32"
- set "back_dir=C:\WINDOWS\system32\logoff.exe"
- ::指定图标路径
- set "back_ico=%windir%\system32\shell32.dll,44"
- del /q "%userprofile%\「开始」菜单\注销.lnk"
-
- ::创建文件的快捷方式(普通位置)
- (echo Set objShell=CreateObject^("WScript.Shell"^)
- echo Set objlink=objShell.CreateShortcut^("%userprofile%\「开始」菜单\注销.lnk"^)
- echo objlink.Hotkey="CTRL+L"
- echo objlink.WindowStyle=3
- echo objlink.TargetPath="%back_dir%"
- echo objlink.WorkingDirectory="%back_d%"
- ::设置图标
- echo objlink.IconLocation="%back_ico%"
- echo objlink.Save
- )>"mysendto.vbs"
- start /wait "" "mysendto.vbs"
- del "mysendto.vbs"
复制代码
作者: pcl_test 时间: 2015-4-2 19:58
本帖最后由 pcl_test 于 2015-4-2 20:05 编辑
回复 1# ygqiang - @echo off
- rem 创建exe文件的lnk快捷方式
- ::指定路径和名称
- set "LnkFile=%userprofile%\「开始」菜单\注销.lnk"
- ::指定主程序
- set "TargetPath=%SystemRoot%\system32\logoff.exe"
- ::指定起始位置
- set "WorkingDirectory=%SystemRoot%\system32"
- ::指定快捷键
- set "Hotkey=Ctrl+Shift+L"
- ::指定图标
- set "IconLocation=%windir%\system32\shell32.dll,44"
- del "%LnkFile%" /f /q >nul 2>nul
- call :CreateShort "%LnkFile%" "%TargetPath%" "%WorkingDirectory%" "%HotKey%" "%IconLocation%"
- pause & exit
-
- ::Arguments 目标程序参数
- ::Description 快捷方式备注
- ::FullName 返回快捷方式完整路径
- ::Hotkey 快捷方式快捷键
- ::IconLocation 快捷方式图标,不设则使用默认图标
- ::TargetPath 目标
- ::WindowStyle 窗口启动状态
- ::WorkingDirectory 起始位置
-
- :CreateShort
- mshta VBScript:Execute("Set a=CreateObject(""WScript.Shell""):Set b=a.CreateShortcut(""%~1""):b.TargetPath=""%~2"":b.WorkingDirectory=""%~3"":b.HotKey=""%~4"":b.IconLocation=""%~5"":b.Save:close")
- goto :eof
复制代码
作者: pcl_test 时间: 2015-4-2 23:01
回复 1# ygqiang - ' 2>nul& @echo off & cls
- ' 2>nul& del "%userprofile%\「开始」菜单\注销.lnk" /f /q >nul 2>nul
- ' 2>nul& cscript -nologo -e:vbscript %~fs0
- ' 2>nul& pause & exit /b
- Set a=CreateObject("WScript.Shell")
- userprofile=a.expandenvironmentstrings("%userprofile%")
- windir=a.expandenvironmentstrings("%windir%")
- Set b=a.CreateShortcut(userprofile & "\「开始」菜单\注销.lnk")
- b.TargetPath=windir & "\system32\logoff.exe"
- b.WorkingDirectory=windir & "\system32"
- b.HotKey="Ctrl+Shift+L"
- b.IconLocation=windir & "\system32\shell32.dll,44"
- b.Save
复制代码
作者: pcl_test 时间: 2015-4-3 23:13
本帖最后由 pcl_test 于 2015-4-3 23:21 编辑
回复 1# ygqiang - if ($true){}# == ($true){}# goto _batch
- <#BeginBat#
- :_batch
- @echo off&setlocal&cls
- del "%userprofile%\「开始」菜单\注销.lnk" /f /q >nul 2>nul
- (echo $strPath="%~dp0"&type "%~f0")|powershell -command -
- pause
- exit/b 0
- #EndBat#>
-
- $shell = New-Object -ComObject WScript.Shell
- $lnkpath = [System.Environment]::GetFolderPath(7)
- $windir = [System.Environment]::GetFolderPath(37)
- $lnkfile = $shell.CreateShortcut("$lnkpath\注销.lnk")
- $lnkfile.TargetPath="$windir\logoff.exe"
- $lnkfile.WorkingDirectory="$windir"
- $lnkfile.HotKey="Ctrl+Shift+L"
- $lnkfile.IconLocation="$windir\shell32.dll,44"
- $lnkfile.Save()
复制代码
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |