无忧启动论坛

标题: 锁定到任务栏问题 [打印本页]

作者: xianglang    时间: 2022-11-25 15:30
标题: 锁定到任务栏问题
在 Windows 2000/XP 的时代,任务栏的快捷方式,只要将它复制到用户目录下的 Microsoft\Internet Explorer\Quick Launch 里面去,就立即生效,可以在任务栏看到图标了。但是在 Windows 7/10 里面,自行复制进去 AppData\Roaming\Microsoft\Internet Explorer\Quick Launch\User Pinned\TaskBar 的快捷方式却不会在任务栏里显示,系统重启了也不会显示——但是如果是直接用右键锁定到任务栏功能时却立竿见影。

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



作者: a583091790    时间: 2022-11-25 15:33
我也正需要了解琢磨这个问题,到底怎么样快速恢复任务栏的图标排列
作者: 窄口牛    时间: 2022-11-25 15:39
图标加注册表。
作者: 9zhmke    时间: 2022-11-25 16:05
参考下转自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
复制代码

作者: xianglang    时间: 2022-11-25 16:20
好复杂……

作者: 879792799    时间: 2022-11-25 18:36

好复杂……
作者: laonat    时间: 2022-11-25 19:09
谢谢分享
作者: 9527sss    时间: 2022-11-25 20:01
#在这里快 感谢分享速回复#
作者: a583091790    时间: 2022-11-26 12:53
用 PinToTaskbar 解决了
http://bbs.wuyou.net/forum.php?m ... d=433062&extra=
作者: wuidy    时间: 2022-12-5 18:36
不主动进行图标刷新?
作者: xianglang    时间: 2022-12-5 22:30
wuidy 发表于 2022-12-5 18:36
不主动进行图标刷新?

不清楚,反正我离线复制到那个位置,重启N次都没出现。

作者: nowayer    时间: 2023-12-2 06:16
提示: 作者被禁止或删除 内容自动屏蔽
作者: 千城    时间: 2023-12-8 03:13
楼主应该是想封装系统的时候直接添加任务栏,PinToTaskbar是系统启动后的,不过也可以,加个启动项就好了




欢迎光临 无忧启动论坛 (http://wuyou.net/) Powered by Discuz! X3.3