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/ 在网上找到篇文章,自定义快速启动栏和顶部链接栏,以下为代码, ...
随机推荐
- Spark机器学习7·降维模型(scala&python)
PCA(主成分分析法,Principal Components Analysis) SVD(奇异值分解法,Singular Value Decomposition) http://vis-www.cs ...
- Django 知识补漏单例模式
Django 知识补漏单例模式 单例模式:(说白了就是)创建一个类的实例.在 Python 中,我们可以用多种方法来实现单例模式: 1.文件导入的形式(常用) s1.py class Foo(obje ...
- Python面试题之Python和Java中Super方法的区别
python 的 super 是一个函数,需要两个参数,第一个参数是类,第二个参数是实例,返回值是一个类对象. 其意义是:站在参数2这个实例的角度看去, 参数1这个类的‘父亲’是谁,把‘父亲’返回. ...
- Python3.x:实现多任务(多进程)
Python3.x:实现多任务(多进程) # python3 # author lizm # datetime 2018-02-13 16:00:00 # -*- coding: utf-8 -*- ...
- jQuery可自动播放动画的焦点图
在线演示 本地下载
- 【传感器】BMA253 数字,三轴加速度传感器
参考文档:BMA253E DataSheet 参考文档链接 密码:9new BMA253 数字,三轴加速度传感器 关键特性: 关键特性 封装方式 LGA封装(12pins),长*宽(2mm*2mm ...
- linux tzselect 设置时区
date -R 检查时间 tzselect 按照提示逐步设置 //这里演示的是设置东八区 TZ='Asia/Shanghai'; export TZ 添加到/etc/profile source pr ...
- python 读取libsvm文件
以下三种方式 # -*- coding:utf-8 -*- import numpy as np import os from sklearn import datasets def data_gen ...
- Linux下同时复制多个文件
方法一 使用cp命令 cp /home/usr/dir/{file1,file2,file3,file4} /home/usr/destination/ 需要注意的是这几个文件之间不要有空格 具有共同 ...
- 用户iis可以用外网ip访问,用内网访问报错404
如下,没有添加内网ip绑定