首页
社区
课程
招聘
未解决 [讨论]Win10编程将指定程序固定到任务的方法
发表于: 2021-4-10 01:06 5852

未解决 [讨论]Win10编程将指定程序固定到任务的方法

2021-4-10 01:06
5852

找了一下午,所有能试的都试了,很多方法在老的系统上是可以用的,但在新版Win10却不无效!

 

找到一段通过枚举右键菜单项来调用的VBS改了下,但是枚举不到系统自带的”固定到任务栏“,通过注册表增加了一个Taskbar项来实现固定到任务栏,手动操作可把程序和快捷方式固定到任务栏!VBS也可枚举到这个新增的菜单项,但是DoIt调用它依旧是无效!!!调用其它的”打开(O)“、”打开文件所在的位置(I)“等功能都有效!

 

Win10为什么要把这么简单实用的东西给砍掉啊!

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
'HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CommandStore\shell\Windows.taskbarpin
 
path="HKEY_CURRENT_USER\SOFTWARE\Classes\*\shell\Taskbar\"
Const CSIDL_COMMON_PROGRAMS = &H17
Const CSIDL_PROGRAMS = &H2
Const CSIDL_COMMON_DESKTOPDIRECTORY = &H0
set WshShell = WScript.CreateObject("WScript.Shell")
tmp = WshShell.RegWrite(path & "ExplorerCommandHandler","{90AA3A4E-1CBA-4233-B8BB-535773D48449}")
Set objShell = CreateObject("Shell.Application")
Set objAllUsersProgramsFolder = objShell.NameSpace(CSIDL_COMMON_DESKTOPDIRECTORY)
'strAllUsersProgramsPath = objAllUsersProgramsFolder.Self.Path?
strDesktop = WshShell.SpecialFolders("Desktop")
'Msgbox strAllUsersProgramsPath
'Msgbox strDesktop
 
Set objFolderItem = objAllUsersProgramsFolder.ParseName( strDesktop + "\TestApp.lnk")
Set colVerbs = objFolderItem.Verbs
 
For Each objVerb in colVerbs
    'Msgbox objVerb.name
    'If Replace(objVerb.name, "&", "") = "打开文件所在的位置(I)" Then    '可打开文件夹
    If Replace(objVerb.name, "&", "") = "Taskbar" Then        '没反应
        objVerb.DoIt()
        'Msgbox objVerb.name
    End if
Next
 
WshShell.RegDelete(path)    '注释掉,手动执行Taskbar可程序和快捷方式固定到任务栏
Set WshShell = Nothing
Set objShell = Nothing

[课程]Linux pwn 探索篇!

最后于 2021-4-10 01:08 被欧阳休编辑 ,原因:
收藏
免费 0
支持
分享
最新回复 (2)
雪    币: 785
活跃值: (418)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
我记得用命令行也可以,但是找不到用什么命令行了。
2021-4-10 17:37
0
雪    币: 20
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
3
也是找了一圈,都不行,这可咋弄啊?
2022-2-15 11:31
0
游客
登录 | 注册 方可回帖
返回
//