vc++ windows 快速启动栏创建快捷方式
创建快速启动栏
在windows软件开发中,软件安装过程中总是需要在快速启动栏创建快捷方式,下面介绍一种快速启动栏创建快捷方式的方法,具体代码如下:(该方法不支持win10,目前还没有找到win10的创建方法,有方法的朋友欢迎推荐)
/*
* 设置快速启动栏
* szExePath[in]:要创建快捷方式的exe文件全路径
* szLinkName[in]:要创建的快捷方式的名字
* iIcon[in]:要创建快捷方式的exe文件RC资源中的icon值(默认为0)
*/
void MainFrame::AddQueickLaunch(LPCTSTR szExePath, LPCTSTR szLinkName, int iIcon)
{
//先获取系统版本号
CWinVersion version;
DWORD dwMajorVersion = 6;
version.GetMajorVersion(dwMajorVersion);
DWORD dwMinVersion = 0;
version.GetMinorVersion(dwMinVersion);
//xp系统
if (dwMajorVersion < 6)
{
PIDLIST_ABSOLUTE ppidl = NULL;
//获取Application Data的地址
if (SHGetSpecialFolderLocation(NULL, CSIDL_APPDATA, &ppidl) == S_OK)
{
TCHAR szQueickLaunchPath[MAX_PATH] = { 0 };
BOOL flag = SHGetPathFromIDList(ppidl, szQueickLaunchPath);
StringCchCat(szQueickLaunchPath, _countof(szQueickLaunchPath), _T("\\Microsoft\\Internet Explorer\\Quick Launch"));
TCHAR szExeLinkFullPath[MAX_PATH] = { 0 };
StringCchPrintf(szExeLinkFullPath, _countof(szExeLinkFullPath), _T("%s\\%s.lnk"), szQueickLaunchPath, szLinkName);
//1、添加xp系统中的快速启动栏
{
CreateLinkAnother(szExePath, szExeLinkFullPath, iIcon);
SHChangeNotify(SHCNE_ASSOCCHANGED,
SHCNF_FLUSH | SHCNF_PATH,
szExeLinkFullPath, 0);
}
}
}
///win 10
else if (dwMajorVersion == 10)
{
//win10暂不支持该方法
}
//win7/win8
else
{
LPITEMIDLIST pidlBeginAt, pidlDestination;
TCHAR szStartMenuPath[MAX_PATH] = { 0 };
LPITEMIDLIST ppidl = NULL;
HRESULT hSpecialPath = SHGetSpecialFolderLocation(NULL, CSIDL_COMMON_PROGRAMS, &ppidl);
if (hSpecialPath == S_OK)
{
BOOL flag = SHGetPathFromIDList(ppidl, szStartMenuPath);
CoTaskMemFree(ppidl);
}
//创建一个目录用来放.lnk文件
StringCchCat(szStartMenuPath, _countof(szStartMenuPath), _T("\\我的快速启动栏"));
TCHAR szExeLinkFullPath[MAX_PATH] = { 0 };
StringCchPrintf(szExeLinkFullPath, _countof(szExeLinkFullPath), _T("%s\\%s.lnk"), szStartMenuPath, szLinkName);
ShellExecute(NULL, _T("taskbarpin"), szExeLinkFullPath, NULL, NULL, 0);
SHChangeNotify(SHCNE_ASSOCCHANGED,
SHCNF_FLUSH | SHCNF_PATH,
szExeLinkFullPath, 0);
}
}
其中CWinVersion的定义在我的另一篇博文中,可以到那边进行查看。
vc++ windows 快速启动栏创建快捷方式的更多相关文章
- Delphi -- 创建 桌面、发送到...、快速启动栏、开始菜单、程序菜单、右键菜 单
{================================================================= 功 能: 创建 桌面.发送到....快速启动栏.开始菜单.程序菜单 ...
- windows添加快速启动栏
步骤: 右击任务栏——选择“新建工具栏” 在“文件夹”路径中填入%appdata%\Microsoft\Internet Explorer\Quick Launch并单点“选择文件夹” 右键单击任务栏 ...
- [No000004]在WIN7/8任务栏创建快捷方式
在XP时代,有一个快速启动栏,创建快捷方式只需要把快捷方式放在“%AppData%\Roaming\Microsoft\Internet Explorer\Quick Launch”文件夹下即可,如果 ...
- 如何用INNO安装添加快捷启动方式到Win7的快速启动栏(超级任务栏)
问题:如何用INNO安装添加快捷启动方式到Win7的快速启动栏(超级任务栏) 在XP下,添加方式是直接把快捷方式复制到%appdata%\Microsoft\Internet Explorer\Qui ...
- 根据权限显示隐藏SharePoint 2010快速启动栏的链接
转:http://www.360sps.com/Item/ShowAndHiddenLink.aspx 在SharePoint 2010的快速启动栏中可以根据权限来显示或隐藏列表.库.网站的链接,如果 ...
- Win7快速启动栏
http://jingyan.baidu.com/article/456c463bbc1d140a583144cf.html 1. 在任务栏上右键 -> 工具栏 -> 新建工具栏. 在 ...
- win7和win8如何设置快速启动栏
a.在任务栏上右键 -> 工具栏 -> 新建工具栏 -> 跳出选择文件夹对话框,在文件夹里面(光标山洞处)输入这个路径,然后按回车: %userprofile%\AppData\Ro ...
- win7 系统如何设置快速启动栏
a.在任务栏上右键 -> 工具栏 -> 新建工具栏 -> 跳出选择文件夹对话框,在文件夹里面(光标山洞处)输入这个路径,然后按回车: %userprofile%\AppData\Ro ...
- 自定义 SharePoint 2010 快速启动栏和顶部链接栏
转:http://vickynuli.blog.163.com/blog/static/180438492201281434249486/ 在网上找到篇文章,自定义快速启动栏和顶部链接栏,以下为代码, ...
随机推荐
- Python3.x:pip install pymssql安装时出错
Python3.x:pip install pymssql安装时出错 一.错误日志 error: Microsoft Visual C++ 14.0 is required. Get it with ...
- apache性能测试工具ab
性能测试工具目前最常见的有以下几种:ab.http_load.webbench.siege ab是apache自带的压力测试工具.ab非常实用,它不仅可以对apache服务器进行网站访问压力测试,也可 ...
- 总结一下TODO的用法
1.设置任务的标签 WINDOW->preference->java->complier->task tags加一个 DONE:NORMAL表示已经完成的任务2. java ...
- grep 使用场景
(1)结合find命令和管道 你的一个音乐文件夹里有多种格式的文件,而你只想找到艺术家jay的mp3文件,并且不含有任何的混合音轨 find . -name "*mp3" | ...
- Autofac register and resolve
Passing Parameters to Register When you register components you have the ability to provide a set of ...
- GCD汇总
//总结如下: //1.同步请求:不会开启新的线程 //1-1.同步请求--串行队列:不开启新线程--按照顺序执行下去 //1-2.同步请求--并发列队:不开启新线程--按照顺序执行下去 //2.异步 ...
- LVS+Keepalived+Tomcat实现高可用性及均衡负载
1.Keepalived简介 Keepalived是Linux下一个轻量级别的高可用解决方案.Keepalived起初是为LVS设计的,专门用来监控集群系统中各个服务节点的状态,它根据TCP/IP参考 ...
- Logstash过滤器修改数据
数据修改(Mutate) filters/mutate 插件是 Logstash 另一个重要插件.它提供了丰富的基础类型数据处理能力.包括类型转换,字符串处理和字段处理等. 类型转换 类型转换是 fi ...
- Java 正则表达式 Pattern & Matcher
通常会有这种需求: 在文档中搜索有规律的字符串,然后进行统计或者替换.Java.util.regex包下的Pattern和Matcher这两个类提供了通过正则表达式来匹配查询,甚至替换的功能.那么我们 ...
- Springer Latex
What are the guidelines for uploading a LaTeX formatted manuscript? 1. Always upload the main LaTe ...