用C++创建快捷方式
来源:互联网 发布:硬件温度监控软件 编辑:程序博客网 时间:2024/06/05 16:00
用C++创建快捷方式
主要用到的是COM组件。IShellLink和IPersistFile
添加头函数 shobjidl.h
//////////////////////////////////////////////////////////
IPersistFile主要用到两个成员函数:
1、Save。保存内容到文件中去
2、Load。读取
Load的函数原型HRESULT Load(
LPCOLSTR pszFileName, //快捷方式的文件名,应该是ANSI字符
DWORD dwMode //读取方式
);dwMode可取如下值:
STGM_READ:只读
STGM_WRITE:只写
STGM_READWRITE:读写
IShellLink主要成员:
1、GetArguments:获得参数信息
2、GetDescription:获得描述信息(备注行)
3、GetHotkey:获得快捷键
4、GetIconLocation:获得图标
5、GetIDList:获得快捷方式的目标对象的item identifier list (Windows外壳中的每个对象如文件,目录和打印机等都有唯一的item identifiler list)
6、GetPath: 获得快捷方式的目标文件或目录的全路径
7、GetShowCmd:获得快捷方式的运行方式,比如常规窗口,最大化
8、GetWorkingDirectory:获得工作目录
9、Resolve:按照一定的搜索规则试图获得目标对象,即使目标对象已经被删除或移动,重命名
下面是对应信息的设置方法
10、SetArguments
11、SetDescription
12、SetHotkey
13、SetIconLocation
14、SetIDList
15、SetPath
16、SetRelativePat
17、SetShowCmd
18、SetWorkingDirectory
一般情况操作如下:
一、初始化COM接口
二、创建IShellLink对象
三、从IShellLink对象中获取IPersistFile对象接口
四、操作IShellLink对象
五、释放IPersistFile对象接口
六、释放IShellLink对象
七、释放COM接口MFC 代码如下
void CreateLink(){ //初始化com组件 ::CoInitialize(NULL); LPITEMIDLIST pitemIlist; SHGetSpecialFolderLocation(NULL, CSIDL_DESKTOP, &pitemIlist); TCHAR szPath[MAX_PATH]{0}; //从LPITEMIDLIST 获取桌面的路径 SHGetPathFromIDList(pitemIlist, szPath); wcscat_s(szPath, L"\\newLink.lnk"); IShellLink *pShellLink; IPersistFile *pPerFile; //创建对象 CoCreateInstance(CLSID_ShellLink, NULL, CLSCTX_INPROC_SERVER, IID_IShellLink, (LPVOID*)&pShellLink); TCHAR szSrcPath[MAX_PATH]{0}; GetModuleFileName(NULL, szSrcPath, MAX_PATH); // 从IShellLink获取其IPersistFile接口 pShellLink->QueryInterface(IID_IPersistFile, (LPVOID*)&pPerFile); //设置启动路径 pShellLink->SetPath(szSrcPath); //设置热键 :"Ctrl+Alt +Q" pShellLink->SetHotkey(MAKEWORD('Q', HOTKEYF_CONTROL | HOTKEYF_ALT)); //设置图标 pShellLink->SetIconLocation(L"E:\\link.ico", 0); //保存路径 pPerFile->Save(szPath, false); //释放! pPerFile->Release(); pShellLink->Release(); ::CoUninitialize();}
- 用bat创建快捷方式
- 用C# 创建快捷方式
- 用脚本创建快捷方式
- 用C++创建快捷方式
- 在 .NET 中创建快捷方式 [C#]
- 在 .NET 中创建快捷方式 [C#]
- 在 .NET 中创建快捷方式 [C#]
- 编程(C#)实现创建快捷方式文件
- 编程(C#)实现创建 internet快捷方式 文件
- 用delphi创建桌面快捷方式
- 用delphi创建桌面快捷方式
- 用代码创建各种快捷方式
- 创建快捷方式
- 创建快捷方式
- 创建快捷方式
- 创建快捷方式
- 创建快捷方式
- 创建快捷方式
- 直流电机控制
- SQL实战题目(三)
- 文章标题 实验三:内部模块化的命令行菜单小程序V2.0
- 关于js中的this的指向问题
- Docker下HBase学习,三部曲之三:java开发
- 用C++创建快捷方式
- 全连接神经网络 python实现
- 在CentOS 7.2下升级gcc编译器的版本
- 在CentOS 7.2下升级gcc编译器的版本
- 在CentOS 7.2下升级gcc编译器的版本
- 【Vivado】学习笔记(1)
- java中带有package的java源文件在cmd下得运行
- Python3 多线程
- 51nod 1205 流水线调度(Johnson规则)