【转载】C++实现在桌面创建程序的快捷方式

VC++ 创建桌面、开始菜单快捷方式(附源码) 很多公司的软件安装包不再使用InstallShied、InnoSetup等打包工具,他们自己编写代码去制作安装包,这样就能灵活地控制打包的流程、实现酷炫的UI界面。自制安装包的一个重要的一项就是创建桌面和开始菜单的快捷方式,这其中可能会产生一些bug,我们都遇到过,在此将这块的内容分享给大家。 1、创建快捷方式 创建快捷方式的代码是通用的,不管是创建桌面快捷方式,还是创建开始菜单快捷方式,都要调用下面封装的接口CreateFileShortcut:(该接口中主要使用前两个... 阅读详情
C++实现在桌面创建程序的快捷方式

#include "atlconv.h"


bool CreatLinkToStartMenu(char * pszPeFileName)
{

 HRESULT hr = CoInitialize(NULL);
 if (SUCCEEDED(hr))
 {
  IShellLink *pisl;
  hr = CoCreateInstance(CLSID_ShellLink, NULL,
   CLSCTX_INPROC_SERVER, IID_IShellLink, (void**)&pisl);
  if (SUCCEEDED(hr))
  {
   IPersistFile* pIPF;

   /////////////////////////////////////////////////////////////////////////////////////////////////////////////

   //这里是我们要创建快捷方式的原始文件地址
   pisl->SetPath(pszPeFileName);
   hr = pisl->QueryInterface(IID_IPersistFile, (void**)&pIPF);
   if (SUCCEEDED(hr))
   {
    /////////////////////////////////////////////////////////////////////////////////////////////////////////////

    //这里是我们要创建快捷方式的目标地址
    char szStartPath[MAX_PATH] = {0};
    SHGetSpecialFolderPath(NULL,szStartPath, CSIDL_STARTUP, 0);
    strcat(szStartPath,"\\Windows Message.lnk");
    
    USES_CONVERSION;
    LPCOLESTR lpOleStr = A2COLE(szStartPath);
    
    pIPF->Save(lpOleStr, FALSE);
    
    pIPF->Release();
   }
   pisl->Release();
  }
  CoUninitialize();
 }

 return true;
}

C++ 创建快捷方式的最简单方法 //代码如下: HRESULT hr = CoInitialize(NULL);  if (SUCCEEDED(hr))  {   IShellLink *pisl;   hr = CoCreateInstance(CLSID_ShellLink, NULL,        CLSCTX_INPROC_SERVER, IID_IShellLink, (void**)&pisl); 阅读详情

相关推荐

3D Slicer:从入门到精通(二)——入门指南

本篇文章包含开始使用3D Slicer所需的信息,包括如何安装和快速开始使用基本功能,以及在哪里找到更多信息。

walt3433的博客 2万+

Windows C++ 创建桌面快捷方式

【代码】Windows C++ 创建桌面快捷方式。

咩 1272

TouchGFX使用教程(三)

TouchGFX使用教程(三)界面事件控件修改方法图片等资源放置位置 界面事件 控件修改方法 图片等资源放置位置

yuanzhan11的专栏 6972

创建快捷方式

#include "atlconv.h" bool CreatLinkToStartMenu(char * pszPeFileName) {  HRESULT hr = CoInitialize(NULL);  if (SUCCEEDED(hr))  {   IShellLink *pisl;   hr = CoCreateInstance(CLSID_ShellLink, NU

u011474747的专栏 532

实例讲解CANoe报文解析使用方法

在日常工作中,经常需要分析车辆产生故障的原因,在电动汽车中,分布式控制器及线束在其中某一个地方出现问题,就有可能造成车辆故障,但是由于电气零件无法直观的观察到哪个部位发生了故障,所以要借助工具测量电气变量或者采集报文信息通过分析,解析出故障原因,从而为车辆的开发,测试,维修提供支持。其中汽车行业最通用的通讯方式就是CAN通讯,本文针对使用CANoe对CAN报文离线分析的使用方法做详细介绍。

qq_43011586的博客 1万+

PCL点云处理之计算点到空间直线距离的四种方法(二十三)

PCL点云处理之计算点到空间直线距离的四种方法

weixin_44329757的博客 3022

Visual Studio 2015 - 桌面添加快捷方式

Visual Studio 2015 - 桌面添加快捷方式

程永强 2万+

CATIA二次开发一一一计算 CATIA 零件模型在全局坐标系下的包围盒方法

本文介绍了一种在CATIA中计算零件模型全局坐标系下包围盒(BoundingBox)的方法。通过遍历零件几何体特征点,并应用坐标变换矩阵,最终返回精确的零件包围盒。核心步骤包括初始化与输入校验、坐标变换处理、几何体特征点遍历以及全局坐标变换。关键方法涉及CATMathBox操作和坐标变换接口。该方法适用于碰撞检测、可视化优化和装配分析等场景,能够快速判断零件间的空间干涉,提升渲染性能,并计算零件在装配体中的全局位置范围。

工业软件开发 895

VC 为程序创建快捷方式的详细讲解

VC 为程序创建快捷方式的详细讲解

weixin_43417960的博客 500

小米汽车车载多摄像头视频链路深度解析 | MAX96792/MAX96724/MAX96781 实战分享

通过合理的输入输出规划 + 虚拟通道管理 + 加串行策略,可以在成本和性能之间取得最佳平衡,这就是多摄像头系统设计的核心精髓。

weixin_43199439的博客 1552

C++怎么学?零基础也可以,一份完整学习路线图助你搞定!

提供一条清晰、系统且实践导向的C++学习路径。从基础语法、面向对象、泛型编程、异常处理,逐步深入STL、智能指针、并发编程等现代C++高级特性。无论是新手还是希望提升,通过系统学习与项目实践,助您将理论知识转化为实际解决问题的能力。

Lion_Long的博客 4032

C++实现在桌面创建程序的快捷方式

C++实现在桌面创建程序的快捷方式 #include "atlconv.h" bool CreatLinkToStartMenu(char * pszPeFileName) { HRESULT hr = CoInitialize(NULL); if (SUCCEEDED(hr)) { IShellLink *pisl; hr = CoCreateInstance(CL...

weixin_34074740的博客 431

uniapp - 实现苹果App打包上架App Store应用商店详细教程,详解Hbuilder打包编译ipa发布上传到苹果ios软件商店全流程,提供云打包/离线本地打包ios、申请IOS苹果证书方法

uni-app,苹果ios,苹果app,打包编译,appstore应用商店,ipa发布到软件商店,uniapp的app苹果应用商店上架,上架苹果APPStore,uniApp打包的ipa文件上传到商店,上架苹果商城,审核失败,被拒绝,UniApp打包ipa文件,上架iOSAppStore流程指南,最新详细教程最全,Hbuilder打包发布iosapp,苹果云打包上线全过程,云打包IPA并上传到商店,打包iOSipa文件后怎么发布到应用商店,苹果证书申请教程,ios证书申请,mac电脑,审核很久

🏆 前端领域优质创作者 1万+

怎样创建一个快捷方式

void __fastcall TMainForm::Shortcut_Log( AnsiString LinkName, AnsiString LinkFile ){ IShellLinkA* pLink; IPersistFile* pPersistFile; if(SUCCEEDED(CoInitialize(NULL))) { if(SU...

dkopg24406的专栏 119

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

在桌面上创建快捷方式

BOOLCreateLink(LPWSTRszPath,LPCWSTRszLink) { HRESULThres; IShellLink*psl; IPersistFile*ppf; WORDwsz[MAX_PATH]; CoInitialize(NULL); hres=CoCreateInstance( CLSID_ShellLink...

weixin_34270865的博客 164

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

registry 为程序创建快捷方式

功能说明:为程序创建快捷方式uses registry,ActiveX,Comobj,Shlobj;constIID_IPersistFile: TGUID=(D1:$0000010B;D2:$0000;D3:$0000;D4:($C0,$00,$00,$00,$00,$00,$00,$46));function GetShellFolder (constfolder:string):s...

weixin_30319153的博客 86

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

LiteSetup创建快捷方式

2019独角兽企业重金招聘Python工程师标准>>> ...

weixin_33967071的博客 124

Windows下c++创建快捷方式

// szStartAppPath : 点击后启动的程序 // szAddCmdLine : 传给main函数的lpCmdLine // szDestLnkPath : 快捷方式的保存路径 // szIconPath : 快捷方式显示的图标 #ifdef _UNICODE typedef wstring tstring; #else typedef string ...

weixin_33755557的博客 137

采用COM方法 创建应用程序的快捷方式(菜鸟版)

转载请标明是引用于 http://blog.youkuaiyun.com/chenyujing1234   通过此例子学习创建快捷方式的方法,也可知道一些编译错误的解决方法。  #include #include #include #include #include #include #include #include #include #include "at

chenyujing1234的专栏 1903

VC++创建快捷方式、删除快捷方式、添加开始菜单程序组菜单并删除程序组菜单的实例...

转载:http://www.codefans.net/articles/1435.shtml 转载:http://www.cnblogs.com/morewindows/archive/2011/08/14/2138412.html 1 //浏览文件夹 2 BOOL CShortCutDlg::BrowseForFolder( 3 LPITEMIDLIST pidl...

weixin_34261739的博客 251

C++Builder 资料库 (转载)

C++Builder 资料库 2005-03-03 15:14 13115人阅读 评论(3) 收藏 举报 1.怎样在C++Builder中创建使用DLL 2.用C++Bulider在WIN.INI中保存信息 3.如何在C++Builder中检测硬件 4.C++Builder如何响应消息及自定义消息 5.利用C++ Builder开发动画DLL 6.用C++ Builder

qq_31209383的博客 3374

windows无法创建快捷方式 请检查磁盘已满

昨天晚上我的一个软件不能创建快捷方式,其他的软件可以,可就这个软件不行。 于是我百度+谷歌。好多给出的答案如下 1.检查文件的存放路径是否为光驱等只读设备,如果是,请修改任务属性,改变文件的存放路径; 2.请检查您是否有对该磁盘写数据的权限; 3.重新启动操作系统,以系统管理员的账号登录 ” 4 “开始→运行”输入以下命令,就能解决问题: regsvr3...

weixin_34341229的博客 501

建立快捷方式的函数: CreateShortcut - 非常实用、特别方便

unit Unit1;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls;type TForm1 = class(TForm) Button1: TButton; Button2: TButton; Butto...

weixin_33768481的博客 107

STM32驱动W25Q64 Flash的SPI配置避坑指南

SPI Flash是嵌入式系统中常用的外部非易失存储器件,其通信依赖严格的时序协议与硬件协同。理解SPI工作模式(CPOL/CPHA)、片选(NSS)控制机制、状态机初始化流程,是实现稳定读写的前提。W25Q64作为典型SPI NOR Flash,要求Mode 0(CPOL=0, CPHA=0)、软件可控NSS、上电后执行Release Power-Down(0xAB)与Write Enable(0x06)等关键初始化指令。忽视这些底层约束,将导致ID读取失败、超时错误或数据写入异常。本文聚焦STM32平台

weixin_34038293的博客 459

VC++ 操作Windows快捷方式

  声明:本文是参考网友博文,然后自己实践整理所得,转载请注明出处!   Windows的快捷方式实际上是一个带有扩展名LNK的数据文件,其中包含有用于访问Windows某一对象(即在资源管理器中所能浏览的所有对象,包括文件,文件夹,驱动器及打印机等)的有关信息,如目标对象的路径和名称,工作目录,要传递的命令行参数,运行时的初始显示状态,图标及其快捷键等。通过在快捷方式上单击鼠标右键并在弹出菜单...

weixin_30394251的博客 162

ubuntu12.04安装eclipse c/c++

在ubuntu上编辑C程序觉得有点累,所以想安装IDE,于是就试着安装eclipse。 首先确保已经安装了gcc和g++。 step 1:下载linux版eclipse 从官网http://www.eclipse.org/downloads/?osType=linux&release=undefined选择Eclipse IDE for C/...

weixin_33898876的博客 166
上一篇: wed6699整站程序下载【首发】
下一篇: 待人真诚p2psearcher2013源码下载
普通网友
博客等级 码龄22年 1万+粉丝 3156原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值