无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站Win To Go 极致利器(IXUNCIS固态U盘)广告联系 微信:wuyouceo QQ:184822951
查看: 407|回复: 8

[讨论] 锁定到任务栏问题

[复制链接]
发表于 7 天前 | 显示全部楼层 |阅读模式
在 Windows 2000/XP 的时代,任务栏的快捷方式,只要将它复制到用户目录下的 Microsoft\Internet Explorer\Quick Launch 里面去,就立即生效,可以在任务栏看到图标了。但是在 Windows 7/10 里面,自行复制进去 AppData\Roaming\Microsoft\Internet Explorer\Quick Launch\User Pinned\TaskBar 的快捷方式却不会在任务栏里显示,系统重启了也不会显示——但是如果是直接用右键锁定到任务栏功能时却立竿见影。

真是神了,连这样的事情微软也留一手?究竟是哪个地方出了问题?


发表于 7 天前 | 显示全部楼层
我也正需要了解琢磨这个问题,到底怎么样快速恢复任务栏的图标排列
回复

使用道具 举报

发表于 7 天前 来自手机 | 显示全部楼层
图标加注册表。
回复

使用道具 举报

发表于 7 天前 | 显示全部楼层
参考下转自AU3论坛的例子:


  1. ;例子:添加计算器程序
  2. _ShellExecute_TaskBarBtnAdd(@SystemDir & '\calc.exe', '我的计算器')
  3. If [url=home.php?mod=space&uid=1261]@error[/url] Then
  4.         Exit MsgBox(48, '', '添加错误 = ' & @error)
  5. Else
  6.         MsgBox(64, '', '已添加')
  7. EndIf

  8. ;例子:删除计算器程序
  9. _ShellExecute_TaskBarBtnDel('我的计算器')
  10. If @error Then
  11.         MsgBox(48, '', '删除错误 = ' & @error)
  12. Else
  13.         MsgBox(64, '', '已删除')
  14. EndIf

  15. Func _ShellExecute_TaskBarBtnAdd($sPath, $sName = '')        ;将快捷方式或程序锁定到任务栏
  16. ;~         ###(lnk快捷方式文件或程序文件, 程序文件可指定的显示名)
  17.         Local $fLnkTmp = ''
  18.         If Not StringRegExp($sPath, '(?i)\.lnk) Then
  19.                 If Not FileExists($sPath) Then Return SetError(1, 0, 0)
  20.                 $sName = StringRegExpReplace($sName, '(?i)^\s+|\s+$|\.lnk\s*, '')
  21.                 If $sName = '' Then
  22.                         $fLnkTmp = @TempDir & '\' & StringRegExpReplace($sPath, '^.*\\|\.\w+, '') & '.lnk'
  23.                 Else
  24.                         If StringRegExp($sName, '[\\/:*?"<>|]') Then Return SetError(2, 0, 0)
  25.                         $fLnkTmp = @TempDir & '\' & $sName & '.lnk'
  26.                 EndIf
  27.                 If Not FileCreateShortcut($sPath, $fLnkTmp) Then Return SetError(3, 0, 0)
  28.                 $sPath = $fLnkTmp
  29.         Else
  30.                 Local $aTmp = FileGetShortcut($sPath)
  31.                 If @error Then Return SetError(4, 0, 0)
  32.                 If Not FileExists($aTmp[0]) Then Return SetError(5, 0, 0)
  33.         EndIf
  34.         Local $TaskBarLnk = @AppDataDir & '\Microsoft\Internet Explorer\Quick Launch\User Pinned\TaskBar\' & StringRegExpReplace($sPath, '^.*\\', '')
  35.         If $TaskBarLnk = $sPath Then Return SetError(6, 0, 0)
  36.         If FileExists($TaskBarLnk) Then ShellExecuteWait($TaskBarLnk, '', '', 'taskbarunpin')
  37.         ShellExecuteWait($sPath, '', '', 'taskbarpin')
  38.         If @error Then
  39.                 If $fLnkTmp <> '' Then FileDelete($fLnkTmp)
  40.                 Return SetError(7, 0, 0)
  41.         EndIf
  42.         If $fLnkTmp <> '' Then FileDelete($fLnkTmp)
  43. EndFunc   ;==>_ShellExecute_TaskBarBtnAdd
  44. Func _ShellExecute_TaskBarBtnDel($sLnkName)        ;删除任务栏上指定名称的锁定程序
  45. ;~         ###(lnk文件名即显示名)
  46.         $sLnkName = StringRegExpReplace($sLnkName, '(?i)^.*\\|^\s+|\s+$|\.lnk\s*, '')
  47.         If $sLnkName = '' Then Return SetError(1, 0, 0)
  48.         Local $TaskBarLnk = @AppDataDir & '\Microsoft\Internet Explorer\Quick Launch\User Pinned\TaskBar\' & $sLnkName & '.lnk'
  49.         If Not FileExists($TaskBarLnk) Then Return SetError(2, 0, 0)
  50.         ShellExecuteWait($TaskBarLnk, '', '', 'taskbarunpin')
  51.         If @error Then Return SetError(3, 0, 0)
  52. EndFunc   ;==>_ShellExecute_TaskBarBtnDel
复制代码
回复

使用道具 举报

 楼主| 发表于 7 天前 | 显示全部楼层
好复杂……
回复

使用道具 举报

发表于 7 天前 | 显示全部楼层

好复杂……
回复

使用道具 举报

发表于 7 天前 | 显示全部楼层
谢谢分享
回复

使用道具 举报

发表于 7 天前 | 显示全部楼层
#在这里快 感谢分享速回复#
回复

使用道具 举报

发表于 6 天前 | 显示全部楼层
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|捐助支持|无忧启动 ( 闽ICP备05002490号-1 )

闽公网安备 35020302032614号

GMT+8, 2022-12-2 11:15

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表