Board logo

标题: [系统相关] [已解决]批处理如何给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
  1. set "back_d=C:\WINDOWS\system32"
  2. set "back_dir=C:\WINDOWS\system32\logoff.exe"
  3. ::指定图标路径
  4. set "back_ico=%windir%\system32\shell32.dll,44"
  5. del /q "%userprofile%\「开始」菜单\注销.lnk"
  6. ::创建文件的快捷方式(普通位置)
  7. (echo Set objShell=CreateObject^("WScript.Shell"^)
  8. echo Set objlink=objShell.CreateShortcut^("%userprofile%\「开始」菜单\注销.lnk"^)
  9. echo objlink.Hotkey="CTRL+L"
  10. echo objlink.WindowStyle=3
  11. echo objlink.TargetPath="%back_dir%"
  12. echo objlink.WorkingDirectory="%back_d%"
  13. ::设置图标
  14. echo objlink.IconLocation="%back_ico%"
  15. echo objlink.Save
  16. )>"mysendto.vbs"
  17. start /wait "" "mysendto.vbs"
  18. del "mysendto.vbs"
复制代码

作者: pcl_test    时间: 2015-4-2 19:58

本帖最后由 pcl_test 于 2015-4-2 20:05 编辑

回复 1# ygqiang
  1. @echo off
  2. rem 创建exe文件的lnk快捷方式
  3. ::指定路径和名称
  4. set "LnkFile=%userprofile%\「开始」菜单\注销.lnk"
  5. ::指定主程序
  6. set "TargetPath=%SystemRoot%\system32\logoff.exe"
  7. ::指定起始位置
  8. set "WorkingDirectory=%SystemRoot%\system32"
  9. ::指定快捷键
  10. set "Hotkey=Ctrl+Shift+L"
  11. ::指定图标
  12. set "IconLocation=%windir%\system32\shell32.dll,44"
  13. del "%LnkFile%" /f /q >nul 2>nul
  14. call :CreateShort "%LnkFile%" "%TargetPath%" "%WorkingDirectory%" "%HotKey%" "%IconLocation%"
  15. pause & exit
  16. ::Arguments              目标程序参数
  17. ::Description            快捷方式备注
  18. ::FullName               返回快捷方式完整路径
  19. ::Hotkey                 快捷方式快捷键
  20. ::IconLocation           快捷方式图标,不设则使用默认图标
  21. ::TargetPath             目标
  22. ::WindowStyle            窗口启动状态
  23. ::WorkingDirectory       起始位置
  24. :CreateShort
  25. 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")
  26. goto :eof
复制代码

作者: pcl_test    时间: 2015-4-2 23:01

回复 1# ygqiang
  1. ' 2>nul& @echo off & cls
  2. ' 2>nul& del "%userprofile%\「开始」菜单\注销.lnk" /f /q >nul 2>nul
  3. ' 2>nul& cscript -nologo -e:vbscript %~fs0
  4. ' 2>nul& pause & exit /b
  5. Set a=CreateObject("WScript.Shell")
  6. userprofile=a.expandenvironmentstrings("%userprofile%")
  7. windir=a.expandenvironmentstrings("%windir%")
  8. Set b=a.CreateShortcut(userprofile & "\「开始」菜单\注销.lnk")
  9. b.TargetPath=windir & "\system32\logoff.exe"
  10. b.WorkingDirectory=windir & "\system32"
  11. b.HotKey="Ctrl+Shift+L"
  12. b.IconLocation=windir & "\system32\shell32.dll,44"
  13. b.Save
复制代码

作者: pcl_test    时间: 2015-4-3 23:13

本帖最后由 pcl_test 于 2015-4-3 23:21 编辑

回复 1# ygqiang
  1. if ($true){}# == ($true){}# goto _batch
  2. <#BeginBat#
  3. :_batch
  4. @echo off&setlocal&cls
  5. del "%userprofile%\「开始」菜单\注销.lnk" /f /q >nul 2>nul
  6. (echo $strPath="%~dp0"&type "%~f0")|powershell -command -
  7. pause
  8. exit/b 0
  9. #EndBat#>
  10. $shell = New-Object -ComObject WScript.Shell
  11. $lnkpath = [System.Environment]::GetFolderPath(7)
  12. $windir = [System.Environment]::GetFolderPath(37)
  13. $lnkfile = $shell.CreateShortcut("$lnkpath\注销.lnk")
  14. $lnkfile.TargetPath="$windir\logoff.exe"
  15. $lnkfile.WorkingDirectory="$windir"
  16. $lnkfile.HotKey="Ctrl+Shift+L"
  17. $lnkfile.IconLocation="$windir\shell32.dll,44"
  18. $lnkfile.Save()
复制代码





欢迎光临 批处理之家 (http://bbs.bathome.net/) Powered by Discuz! 7.2