前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Win7 将程序在任务栏固定或取消固定(Au3)

Win7 将程序在任务栏固定或取消固定(Au3)

作者头像
我与梦想有个约会
发布2023-10-21 14:41:42
1950
发布2023-10-21 14:41:42
举报
文章被收录于专栏:jiajia_deng

Vista 以后微软在任务栏加入了新的快速启动功能(可能叫快速启动已经不合适了),程序需要人为的去手动点击固定到任务栏或从任务栏取消固定,且微软没有提供任何接口让用户在后台静默设定默认的快速启动程序,这也是为了保护任务栏的生态,不被一些恶意软件强制修改。但如果你必须要通过静默的方式实现这个功能怎么办?别着急,使用以下脚本即可解决你的问题。

代码语言:javascript
复制
#Region ;**** 参数创建于 ACNWrapper_GUI ****
#PRE_UseX64=n
#PRE_Res_requestedExecutionLevel=None
#EndRegion ;**** 参数创建于 ACNWrapper_GUI ****
#include <WinAPI.au3>
#include <Constants.au3>

_PinTaskbar(@WindowsDir & '\notepad.exe')

Func _PinTaskbar($File, $Pin = True)
    If @OSBuild < 7600  Then Return SetError(1) ; Windows 7 only
    If Not FileExists($File) Then Return SetError(2)

    local $sFolder              = StringRegExpReplace($File, "(^.*\\)(.*)", "\1")
    local $sFile                = StringRegExpReplace($File, "^.*\\", "")

    local $oShell               = ObjCreate("Shell.Application")
    local $oFolder              = $oShell.NameSpace($sFolder)
    local $oFolderItem          = $oFolder.ParseName($sFile)
    local $oFolderItemVerbs     = $oFolderItem.Verbs
    local $hInstance            = _WinAPI_LoadLibraryEx("shell32.dll", $LOAD_LIBRARY_AS_DATAFILE)
    local $DoVerb               = ''

    If $hInstance Then
        IF $Pin = 1 Then
            local $DoVerb = _WinAPI_LoadString($hInstance, 5386)
        Else
            local $DoVerb = _WinAPI_LoadString($hInstance, 5387)
        EndIf
        _WinAPI_FreeLibrary($hInstance)
    EndIf

    IF $DoVerb = '' Then Return SetError(3) ; $DoVerb string couldn't received

    For $i = 0 To $oFolderItemVerbs.Count - 1
        If $oFolderItemVerbs.Item($i).Name = $DoVerb Then
            $oFolderItemVerbs.Item($i).DoIt
            Return
        EndIf
    Next
    Return SetError(4) ; $DoVerb string not in menu

EndFunc

程序借助 Shell 模拟实现了用户的操作,但用户无任何感知,相当于静默实现的。_PinTaskbar 函数第一个参数是你要固定或取消固定的程序,第二个参数是一个带有默认值的参数,为 True 是固定到任务栏,为 False 是从任务栏取消固定。要注意的是,此功能在 Win10 上并不生效。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2016-08-15,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档