操作 Windows7 任务栏的快捷方式

目前已经有了可以直接调用的方法。通过 ShellExecute 的 taskbarpin 动词直接实现,如:

1 ShellExecute(NULL, _T("taskbarpin"),
2     _T("C:\\Users\\titilima\\Desktop\\Test.lnk"),
3     NULL, NULL, SW_SHOWNORMAL);

Windows 7 发布已经有段时间了,今天的话题正是针对于此——占领 Windows7 的任务栏,将应用程序 pin 到任务栏上,或者 unpin 之。
具体的方法我在网上也搜到一些,不过在逆向了某程序之后,发现还是它做的优雅一些,于是这里介绍的就是这种方法。需要说明的是,由于各种原因所限,我不能给出源代码。在这里我只给个大概的步骤,相信看懂还是不成问题的。如有不明白的,请自行根据关键字查阅 MSDN 文档。

    1. 查阅 shell32.dll 的字符串资源,找到 pin 和 unpin 命令字符串的 id,记下以便以后使用;
    2. 创建一个 IShellDispatch 接口;
    3. 经由 IShellDispatch 接口获得应用程序所在路径对应的 Folder 接口指针;
    4. 经由 Folder 接口获得应用程序文件名对应的 FolderItem 接口指针;
    5. 经由 FolderItem 接口获取 FolderItemVerbs 接口指针;
    6. 枚举 FolderItemVerbs 接口对应的动词集,获取每个动词的名称;根据第 1 步记下的字符串 id 获取字符串资源,与动词名称比对,直到找到对应的 FolderItemVerb 接口指针;
    7. 调用 FolderItemVerb::DoIt 方法,应用程序便会被 pin 或 unpin 到任务栏上了。
时间: 2024-11-02 16:09:42

操作 Windows7 任务栏的快捷方式的相关文章

如何把程序钉到Windows7任务栏(修正版)

源:如何把程序钉到Windows7任务栏(修正版) 在CSDN论坛看到有网友提问如何把程序钉到Windows7的任务栏,ccrun(妖哥)对这个问题很感兴趣,于是google了一下,没有找到相关的API资料,但是在国外的一个站点看到用FolderItemVerb对象来实现的方法,关于具体的资料,可以查阅MSDN: http://msdn.microsoft.com/en-us/library/windows/desktop/bb774172(v=vs.85).aspx 在Delphi中实现的代码

[No.000002]2015-03-20 编写好的程序如何安装时在WIN7/8任务栏创建快捷方式

在XP时代,有一个快速启动栏,这里创建快捷方式只需要把快捷方式放在“%AppData%\Roaming\Microsoft\Internet Explorer\Quick Launch”文件夹下即可,最近做了一个项目,要在WIN7/8的任务栏上创建快捷方式,搞了半天终于搞定,在这里大概记录一下,如果能因此帮到各位,也算功德一件: 我只需提醒各位注意注册表中[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\T

[No.000004]在WIN7/8任务栏创建快捷方式

在XP时代,有一个快速启动栏,创建快捷方式只需要把快捷方式放在“%AppData%\Roaming\Microsoft\Internet Explorer\Quick Launch”文件夹下即可,如果要在WIN7/8的任务栏上创建快捷方式,只需要注意[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Taskband]的各个键值以及%AppData%\Roaming\Microsoft\Internet Ex

mysql简单的操作(关于栏位的新增,修改,删除)

-- mysql新增栏位,并添加注释 语法: alter tabel 表名 add column 新增字段名 类型(长度定义) comment '需要添加的注释内容' 例子:alter table tbl_user_report_sms add column rpProve VARCHAR(100) COMMENT'被举报人的归属省份' -- 删除栏位 语法: alter table 表名 drop 删除的字段名 例子:alter table tbl_user_report_sms DROP r

WPF案例 (四) 模拟Windows7桌面任务栏

原文:WPF案例 (四) 模拟Windows7桌面任务栏 这个程序模彷了Windows7的桌面任务栏,当在桌面上双击某个快捷方式时,将打开一个新的子界面,并且在任务栏里创建一个链接到此界面的任务栏图标,将鼠标移动到任务栏上的图标时,将Popup出界面的实时图像缩略图,单击任务栏图标时,可让界面最大化或最小化,界面如下所示,源码从这里下载 做这个任务栏界面缩略图时,使用VisualBrush将子界面的实时图像填充到Rectangle 1  Rectangle emptyRectangle = ne

3D Touch介绍:电子秤App与快捷操作

随着iPhone6s与6s plus的到来,苹果给我们展现了一种全新的交互方式:重按手势.你可能知道,这个特性已经在Apple Watch和MacBook上推出了,不过那时叫Force Touch,就是字面上的意思,给用户的交互添加一种新的维度. 如果你很好奇iPhone的Force Touch为啥要更名为3D Touch,那告诉你吧,you’re not alone(译者注:请用MJ的调子唱出来…).不久前,之前也对这名字纠结不已的Craig Federighi(译者注:Apple高级副总裁)

6 关于 Oracle NULL栏位和PL./SQL执行实验

今日有针对NULL值有了相关实验. 对NULL 值插入的讨论. 1, PL/SQL 中可以执行插入''或者NULL 的操作, 前提是栏位允许为空. 2, 可以对NULL进行一系列数据库运算. 如: SELECT ROUND(TO_NUMBER(MAX(A.IN_STATION_TIME)-SYSDATE))*24 FROM SFISM4.R_WIP_TRACKING_T A WHERE A.IN_STATION_TIME IS NULL 总结: 相应TO_NUMBER(NULL)也是可行, MA

破解激活Win10无风险?激活后删除激活工具无影响===http://www.pconline.com.cn/win10/693/6932077_all.html#content_page_4

1Windows激活:测试环境搭建 随着Windows 10的发布,许多用户都用上了这个新一代的操作系统.Windows 10有个最好的设置就是,只要你在已经激活的旧系统中升进行升级操作,就能获得一个已经激活的Windows 10系统,这是微软给用户的福利.这里边的关键字就是"激活",网上出现大量号称"Win7/8/10破解补丁.激活软件"的盗版工具.它们均宣称能免费激活Windows系列,于是便颇受欢迎. 不少用户就是用这些工具来激活了盗版的Windows,看着系

AndroidStudio快速入门四:打造你的开发工具,settings必备

http://blog.csdn.net/jf_1994/article/details/50085825 前言:这里是使用AS的基本设置,适合新入手的朋友阅读,将这里介绍的设置完基本使用无忧啦. 1.setting介绍 点击菜单栏:File | settings 快捷方式:ctrl+art+s 注意:我们可以在基本设置头部的搜索框直接输入你要设置的关键字直接进入 2.设置主题样式.字体大小 File | settings |Appearance&Behavior|Appearance 如上图中