转载请注明来源:https://www.cnblogs.com/hookjc/

VC6下测试时使用的是绝对地址
BOOL CFGDlg::CreateLink (
       LPSTR szPath,//快捷方式的目标应用程序名
       LPSTR szLink)//快捷方式的数据文件名(*.lnk)
{
 HRESULT hres ;
 IShellLink * psl ;
 IPersistFile* ppf ;
 WORD wsz[ MAX_PATH] ;
    //创建一个IShellLink实例
    hres = CoCreateInstance( CLSID_ShellLink, NULL,
        CLSCTX_INPROC_SERVER, IID_IShellLink,
        (void **)&psl) ;
 if( FAILED( hres))
        return FALSE ;
    //设置目标应用程序
    psl -> SetPath( szPath) ;
    //设置快捷键(此处设为Shift+Ctrl+'R')
    psl -> SetHotkey( MAKEWORD( 'R',
  HOTKEYF_SHIFT |HOTKEYF_CONTROL)) ;
    //从IShellLink获取其IPersistFile接口
    //用于保存快捷方式的数据文件 (*.lnk)
    hres = psl -> QueryInterface( IID_IPersistFile,
  (void**)&ppf) ;
 if( FAILED( hres))
        return FALSE ;
 // 确保数据文件名为ANSI格式
 MultiByteToWideChar( CP_ACP, 0, szLink, -1,
  wsz, MAX_PATH) ;
    //调用IPersistFile::Save
    //保存快捷方式的数据文件 (*.lnk)
 hres = ppf -> Save( wsz, STGM_READWRITE) ;
    //释放IPersistFile和IShellLink接口
 ppf -> Release( ) ;
 psl -> Release( ) ;
 return TRUE;
}
//为该应用程序创建快捷方式到桌面
void CFGDlg::OnButton2()
{
 // TODO: Add your control notification handler code here
 char desktoppath[255];
 char *pname="应用程序";
 SHGetSpecialFolderPath(0,desktoppath,CSIDL_DESKTOPDIRECTORY,0);
 sprintf(desktoppath,"%s\\%s.lnk",desktoppath,pname);
 char   szFileName[MAX_PATH];  
 GetModuleFileName(NULL,szFileName,sizeof(szFileName)); 
 CreateLink(szFileName,desktoppath);
}

来源:python脚本自动迁移

VC 创建快捷方式的更多相关文章

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

    转载:http://www.codefans.net/articles/1435.shtml 转载:http://www.cnblogs.com/morewindows/archive/2011/08 ...

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

    有时候,为了方便用户使用我们编写的程序,需要在桌面,快速启动或程序组中创建程序的快捷方式.下面就介绍在VC下如何为程序创建快捷方式. 一.得到桌面,快速启动或程序组的路径这里介绍二个win32 API ...

  3. vc++ windows 快速启动栏创建快捷方式

    创建快速启动栏 在windows软件开发中,软件安装过程中总是需要在快速启动栏创建快捷方式,下面介绍一种快速启动栏创建快捷方式的方法,具体代码如下:(该方法不支持win10,目前还没有找到win10的 ...

  4. 使用C#创建快捷方式

    在Windows中创建快捷方式很简单,直接用右键点击文件或文件夹,选择创建快捷方式即可.如果想用C#代码的方式创建,就没有那么方便了,因为.NET框架没有提供直接创建快捷方式的方法. 首先我们看一下快 ...

  5. [No000004]在WIN7/8任务栏创建快捷方式

    在XP时代,有一个快速启动栏,创建快捷方式只需要把快捷方式放在“%AppData%\Roaming\Microsoft\Internet Explorer\Quick Launch”文件夹下即可,如果 ...

  6. c# 纯代码方式创建快捷方式

    using System; using System.Collections.Generic; using System.Text; using Microsoft.Win32; using Syst ...

  7. C#两种创建快捷方式的方法

    C#两种创建快捷方式的方法http://www.cnblogs.com/linmilove/archive/2009/06/10/1500989.html

  8. Arduino1.7.10在Ubuntu下创建快捷方式

    从官网下载的arduino1.7.10版本没有快捷方式只有可执行文件arduino,通过下面的方法可以创建快捷方式 打开链接:http://www.easyicon.net/1171938-ardui ...

  9. 为apache与mysql创建快捷方式

    为apache与mysql创建快捷方式 1)为apache创建快捷方式(软链接) 以后我们就可以在终端的任一位置,使用apachectl start|stop|restart   2)为mysql创建 ...

随机推荐

  1. [Open Source]基于YOLOv3与Django框架的Web应用-YOLOv3_Detect_Web

    YOLOv3_Detect_Web Use Yolov3 detect on Web 使用 YOLOv3(PyTorch 和 Django 实现)的对象检测应用程序. 网页和 REST API由Dja ...

  2. SpringCloud创建Config读取本地配置

    1.说明 Config Server获取配置支持的方式很多, 包括Git仓库(github/gitee等),任何与JDBC兼容的数据库, Subversion,Hashicorp Vault,Cred ...

  3. Windows下安装配置jdk

    1.jdk安装 从官网获取jdk安装包后, 双击图形化安装,一路next即可. 2.配置JavaHome 打开计算机->系统属性->高级系统设置->环境变量 在系统变量下面添JAVA ...

  4. [数据结构]FHQ-Treap

    前言(个人评价FHQ-Treap) 这是一个巨佬(名叫范浩强)在冬令营交流的时候提出的数据结构(FHQ:\(\text{你干嘛非要旋转呢?Think Functional!}\))(可以看出FHQ大佬 ...

  5. haproxy常用配置

    haproxy 理论 它可以反向代理http/tcp协议,七层和四层的负载均衡解决方案 七层的负载解决方案是因为他们支持高级特性,工作在用户空间,请求从用户空间转换到内核空间是非常浪费硬件资源的. h ...

  6. Net 实现自定义Aop

    引言 何为AOP,在软件开发中,总是听到这个AOP这个词语,但是何为AOP呢,AOP全称是Aspect Oriented Programming,中文译为面向切面编程,什么意思呢,即我们的应用程序在运 ...

  7. Pytest_钩子方法setup、teardown、setup_class、teardown_class(8)

    pytest提供了以下 4 种钩子方法: 方法 说明 setup 在每一个测试用例执行之前,会执行此方法.一般用于每个用例相同的初始化工作. teardown 在每一个测试用例执行之后,会执行此方法. ...

  8. SYCOJ246螺旋矩阵

    题目-螺旋矩阵 (shiyancang.cn) noip201403螺旋矩阵[普及组]数学算法 - 大本营 - 博客园 (cnblogs.com) 以下为搬运代码.一个为算圈数,另外一个是数学方法 思 ...

  9. 【pwn】DASCTF Sept 九月赛

    [pwn]DASCTF Sept 月赛 1.hehepwn 先查看保护,栈可执行,想到shellcode 这题需要注意shellcode的写法 拖入ida中分析 一直以为iso scanf不能栈溢出, ...

  10. 【linux】Ubuntu20.04使用apt下载和卸载openJDK

    Ubuntu20.04使用apt下载和卸载openJDK 前言 由于最近电脑装了ubuntu和win双系统,想再ubuntu上学习.在成功配置完系统之后,开始了配学习环境的旅程.... 这次的是使用u ...