如何在桌面或者开始菜单中创建快捷方式
//在桌面或者开始菜单中创建快捷方式
//pazSrcPath:源文件路径
//bDesktop:标志位,用来判断是否在桌面上创建快捷方式,真,在桌面上创建,否则在开始菜单中创建
bool createShortcut(const char* pszSrcPath, bool bDesktop)
{
CoInitialize(NULL);
bool bRet = false;
IShellLink* psl;
LPITEMIDLIST pidl;
LPMALLOC pShellMalloc;
std::string strDesktopPath;
std::string strStartMenuPath;
const int nFolder[2] = { CSIDL_DESKTOPDIRECTORY,CSIDL_STARTMENU };
if (SUCCEEDED(SHGetMalloc(&pShellMalloc))) {
char Path[MAX_PATH + 1];
for (int i = 0; i < 2; i++) {
if (SUCCEEDED(SHGetSpecialFolderLocation(NULL, nFolder[i], &pidl))) {
if (SHGetPathFromIDList(pidl, Path)) {
if (i == 0)
strDesktopPath = Path;
else
strStartMenuPath = Path;
}
pShellMalloc->Free(pidl);
}
}
pShellMalloc->Release();
}
char szFileTitle[MAX_PATH] = { 0 };
::GetFileTitle(pszSrcPath, szFileTitle, MAX_PATH);
std::string str;
if (bDesktop)
str = strDesktopPath;
else
str = strStartMenuPath;
str += "//";
str += std::string(szFileTitle);
str += ".lnk";
HRESULT hr = CoCreateInstance(CLSID_ShellLink,
NULL,CLSCTX_INPROC_SERVER,
IID_IShellLink,
(LPVOID*)&psl);
if (SUCCEEDED(hr)) {
IPersistFile* ppf;
psl->SetPath(pszSrcPath);
psl->SetDescription("Shortcut created by custom code");
psl->SetShowCmd(SW_SHOW);
if (SUCCEEDED(psl->QueryInterface(IID_IPersistFile, (LPVOID *)&ppf))) {
WORD mbw[MAX_PATH];
MultiByteToWideChar(CP_ACP, MB_PRECOMPOSED, str.c_str(), -1, mbw, MAX_PATH);
if (SUCCEEDED(ppf->Save(mbw, TRUE)))
bRet = true;
ppf->Release();
}
psl->Release();
}
CoUninitialize();
return bRet;
}
如何在桌面或者开始菜单中创建快捷方式相关推荐
- 硬件测试软件 桌面鼠标右键老转,去掉桌面鼠标右键菜单中显卡选项的3种方法(适用常见显卡)...
只要我们更新过显卡驱动,或者你的现在的系统是出厂预装的,鼠标右键菜单中会有启动显卡控制中心选项.如:如果你是ATI显卡,右键菜单中便会有AMD VISION Engine Control Center ...
- 如何在程序中创建快捷方式
通过手工操作建立这些菜单项或快捷方式并不复杂,在一般Windows使用手册中都有介绍,相信大家都很熟悉,在此不再赘述.笔者在有关资料的基础上,通过实践摸索,找到了在应用程序中完成上述工作的方法.这正是 ...
- 如何在程序中创建快捷方式?
这里给出一个创建快捷方式的例子,是使用IShellLink和IPersistFile两个COM接口实现的. 例子代码如下: CFileDialog openDlg(TRUE, NULL, NULL, ...
- win7_64bit下桌面及开始菜单中图标变为.lnk
以下内容参考整理与MSDN: 1.首先 win+r 2.打开运行程序 3.输入: regedit 4.找到: 计算机\HKEY_CURRENT_USER\SOFTWARE\MICROSOFT\WIND ...
- android添加快捷按钮,Android中创建快捷方式代码实例
1.添加权限(必须) 2.添加快捷键 public static void setupShortcut(Activity activity) { Intent shortcutIntent = new ...
- Linux中创建快捷方式
方法如下: 1,进入一个目录 /usr/share/applications 2,复制一份已经有的类似文件(这里就按照eclipse来写) cp xxxxx.desktop eclipse.deskt ...
- linux怎么休眠快捷键,在Deepin系统中创建右键休眠选项的方法
本文介绍在深度Deepin操作系统中创建右键休眠选项,以方便你更快的进入到系统休眠当中,实现方法非常简单,按照下面的步骤进行就可以了. 休眠的好处 系统休眠,可以让平时的工作环境保存到硬盘中,以便开机 ...
- 【Unity游戏开发基础】如何在游戏菜单中实现下拉列表选择画面质量
[背景] 上一篇我们介绍了如何在菜单中创建调节音量大小的滚动条,现在我再来介绍一个游戏菜单中的常用设置,也就是下拉列表选择画面质量的功能如何实现. [步骤] 首先,在菜单UI Canvas上添加一个下 ...
- Kali的w3af安装及创建快捷方式的【详细】教程
Kali安装w3af超级详细教程 我为了安装个w3af花了10个小时,因为网上能参考的教程比较少,有些报错的解决方法甚至网上都没有,特意记录下来,以供大家参考.整篇教程适合刚装的kali. 首先,由于 ...
最新文章
- 如何提升你的能力?给年轻程序员的几条建议
- window下lamp环境搭建
- 自学python语言-自学Python1.1-简介
- Django 2版本
- 用jquery mobile 实现幻灯片效果
- 机器人II(sdutoj2585)-JAVA
- C# WPF Application 下的文件操作
- 算法中各种距离的介绍
- vscode写python_vscode如何编写python?
- MVVM下listbox默认显示最后一行
- 带你了解HTTP协议(一)
- mtk led子系统概略
- 汇总 | 嵌入式软硬件领域各种“黑科技”
- 将汉字转化为拼音的js插件
- 微软跳上OpenID Bandwagon
- HTML5期末大作业:女装服装商城网站设计——女装服装商城(11页) HTML+CSS+JavaScript 学生DW网页设计作业成品 web课程设计网页
- Scikit-plot画图
- redis常用命令getex_Redis常用命令整理
- MySQL通用函数汇总大全
- CoreDNS篇1-简介和安装
热门文章
- IPFS、区块链的libp2p
- CodeForces_29B
- 计算机网络题库——第6章 应用层
- Android TV Menu 3D星体旋转效果
- DSP与FPGA的技术特点和区别是什么?
- C#实现的QQ登录器
- conga(web gui)或cman+rgmanager配置rhcs的HA集群
- 物联网终端的防护体系
- 独角兽项目 7 - 从环境到测试
- 【idea】Error:java: Annotation processing is not supported for module cycles. Please ensure that all..