C++ 创建快捷方式的最简单方法

C++实现Windows快捷方式创建:IShellLink接口与COM编程实战 在Windows桌面应用开发中,程序安装与部署是产品化的重要环节,其中创建桌面和开始菜单快捷方式是提升用户体验的基础需求。从技术原理看,Windows快捷方式(.lnk文件)并非普通文本文件,而是具有特定结构的二进制数据,因此无法通过简单的文件操作生成。其标准创建方法依赖于Windows Shell提供的COM组件模型,通过IShellLink接口设置目标路径、工作目录等属性,再借助IPersistFile接口持久化保存。这一机制体现了Windows系统对Shell扩展和对象持久化的设计思想。在工程实践中, 阅读详情

 //代码如下:

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("c://windows//notepad.exe");
   hr = pisl->QueryInterface(IID_IPersistFile, (void**)&pIPF);
   if (SUCCEEDED(hr))
   {

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

//这里是我们要创建快捷方式的目标地址


    pIPF->Save(L"c:/记事本.lnk", FALSE);
    pIPF->Release();
   }
   pisl->Release();
  }
  CoUninitialize();
 }

That's all.

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

相关推荐

使用API Monitor探测QQ安装包在创建桌面快捷方式时都调用了哪些API及COM接口,以解决C++程序安装包中的问题

本文详细讲述如何使用API Monitor探测QQ安装包在创建桌面快捷方式时都调用了哪些API及COM接口,去解决我们C++程序安装包开发中遇到的多个问题,其中讲到了API Monitor工具的诸多使用细节!

dvlinker的技术专栏 4万+

C++ 创建快捷方式

#include <shlobj.h> /* 函数功能:对指定文件在指定的目录下创建其快捷方式 lpszFileName 目标文件或目录,为NULL表示当前进程的EXE文件。 lpszLnkFileDir 快捷方式存在目录,不能为NULL。 lpszLnkFileName 快捷方式名称,为NULL表示EXE文件名。 lpszWorkDir 起始位置 wHotkey 快捷键,为0表示不设置快捷键 iShowCmd 运行方式,默认为常规窗口 pszD.

老狼的专栏 1389

使用Visual C++实现应用程序快捷方式创建的源代码

在介绍Visual Studio的安装之前,需要了解Visual Studio是微软推出的一款集成开发环境(IDE),广泛应用于软件开发,特别是针对Windows平台。Visual Studio提供了丰富的工具集,支持包括C++、C#、Python等多种编程语言的开发。安装步骤简单明了:访问Visual Studio官网下载安装程序。运行下载的安装程序,按照提示选择安装类型。对于开发Windows应用程序,选择“.NET桌面开发”和“C++桌面开发”工作负载。

weixin_36289813的博客 690

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

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

咩 1272

创建桌面和开始菜单快捷方式程序代码

使用delphi7创建桌面和开始菜单快捷方式程序代码,包括源文件和txt文本说明

VC++获取桌面文件及快捷方式列表

VC++源码,可以获取当前用户及所有用户桌面上的文件及快捷方式列表

C++ 创建、解析快捷方式

#include <iostream> #include <ShObjIdl.h> #include <strsafe.h> using namespace std; #define TARGET TEXT("C:\\WINDOWS\\system32\\shell32.dll") // 快捷方式链接目标 #define LNKFILE L"exampl...

LYSM 940

C++ 创建桌面快捷方式 开始菜单的实现代码

代码如下:void CInstall_ProgressDlg::CreateShortCut(CString csLinkPath, CString csExePath, CString csIconPath){    HRESULT hres;    hres = ::CoInitialize(NULL);    if(S_OK == hres)    {        //delete old link        CFileFind cfind;        if(cfind.FindFile(csLinkPath)){            CFile::Remove(csLink

windows下C++创建快捷方式

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; //快捷方式的原始文..

gongxie0235的博客 2012

docker安装的 n8n提示Your n8n server is configured to use a secure cookie, however you are either visiting

将原来的docker n8n进行删除后即可通过一下方式重新安装,如安装完n8n,提示。

满地找牙的博客 3366

U2Net网络实战:从原理到代码实现(附背景去除应用)

本文深入解析了U2Net网络的原理与代码实现,重点剖析了其独特的嵌套U型结构(RSU模块)和显著图融合机制。通过实战演示,指导读者如何加载预训练模型并应用于精准的图像背景去除任务,为电商、摄影等领域提供高效的自动化抠图解决方案。

nn3456的博客 491

Cpp创建桌面快捷方式lnk

Cpp创建lnk快捷方式

huangr.cn 732

Super4PCS文章阅读笔记

Super4PCS阅读笔记 Super4PCS阅读笔记 前言 前言 今天给大家分享一下点云配准四点法4PCS0的变种——Super4PCS。此算法的原文在:Super4PCS: Fast Global Pointcloud Registration via Smart Indexing。稍微我也会写一篇关于如何使用这篇文章的里所提供的代码进行点云粗配准。关于四点法...

Vodake的博客 4540

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

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

小发猫 3086

国产FPGA逆袭!深度评测复旦微RFVU3P5G核心板在相控阵雷达中的表现

本文深度评测了复旦微RFVU3P5G核心板在相控阵雷达中的实战表现。该核心板凭借射频直采架构、高采样率ADC/DAC及丰富的DSP资源,在多通道同步精度、动态范围及系统稳定性等关键指标上表现出色,展现了国产FPGA在高端雷达应用中的硬核实力与供应链自主价值。

b0c1d2的博客 727

ROS学习笔记之——无人机PID调参过程记录

For cooperaive inquiries, please visit the website:guanweipeng.com

gwpscut的博客 6830

c++ windows 创建快捷方式

创建一个exe程序的快捷方式 记得一定要先定义初始化,同时检测函数的返回值,这是一个好习惯! BOOL createShortcut(LPCTSTR pszExePath,LPCTSTR pszWorkingDir, LPCTSTR pszDescription, LPCTSTR pszIconPath, LPCTSTR pszDestinationPath) { Co

CPP工程师的专栏 3594

如何用libwebsocket库在stm32F407上实现websocket客户端?

🏆本文收录于 《全栈 Bug 调优(实战版)》 专栏。专栏聚焦真实项目中的各类疑难 Bug,从成因剖析 → 排查路径 → 解决方案 → 预防优化全链路拆解,形成一套可复用、可沉淀的实战知识体系。无论你是初入职场的开发者,还是负责复杂项目的资深工程师,都可以在这里构建一套属于自己的「问题诊断与性能调优」方法论,助你稳步进阶、放大技术价值 。

**My Coding Family** 1135

C++对快捷方式的操作

来源:http://www.itboyzone.com/?post=75 本文借鉴:http://bbs.51cto.com/thread-493507-1.html           http://hi.baidu.com/invisiable/item/dfe18c818cc4cadcd1f8cdcc         程序是我理解后写的,可以运行,有些数据需要根据具体情况自己

ITBoy的空间 3374

《网络安全自学教程》- 802.1x协议

802.1x协议架构,工作原理/认证流程,认证方式,MAB认证,触发认证的三种方式,EAP报文格式,EAPOL报文格式

wangyuxiang946的博客 2万+

华为OD机试真题2026双机位C卷 C语言 实现【明日之星选举】

给定一组选票votes。votes[i]代表第 i 张选票的内容,包含一个字符串"zhangsan,hanmei",表示推荐zhangsan为明日之星,反对 hanmei 称为明日之星。赞成或反对使用逗号(,)分割。 给定一个数组n,表示最后将筛选出赞成票最多的n个人,如果赞成票相同,则反对票越少,排序越靠前;如果赞成票和反对票都相同,则按照姓名字典序升序排序。

MISAYAONE的博客 184

用C++创建快捷方式

用C++创建快捷方式 主要用到的是COM组件。IShellLink和IPersistFile 添加头函数 shobjidl.h ////////////////////////////////////////////////////////// IPersistFile主要用到两个成员函数: 1、Save。保存内容到文件中去 2、Load。读取 Load的函数原型 HRESULT L

qq_29020861的博客 2171

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

C++桌面创建快捷方式

stdlib库用于system函数,里面的内容是查找一个Ink.exe的文件,并为此创建快捷方式1.Ink。新建一个文件Ink.cpp,系统会自动生成对应的EXE文件。运行后桌面出现图标,说明成功。

lijiale20150909的博客 278

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

c++ 创建桌面快捷方式

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

a1317338022的博客 2436

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

上一篇: 怎么会这样?delete [] 了,还能用!!!
下一篇: 用VC写Assembly代码
普通网友
博客等级 码龄22年 1万+粉丝 3156原创
评论 5
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值