用c++实现由快捷方式获取执行程序完全路径
时间: 2023-06-25 18:07:19 浏览: 82
可以使用以下代码实现:
```c++
#include <iostream>
#include <windows.h>
int main()
{
// 获取快捷方式文件名
const char* shortcut = "shortcut.lnk";
// 创建 Shell 对象
IShellLink* pShellLink;
CoInitialize(NULL);
HRESULT hres = CoCreateInstance(CLSID_ShellLink, NULL, CLSCTX_INPROC_SERVER, IID_IShellLink, (LPVOID*)&pShellLink);
// 加载快捷方式
IPersistFile* pPersistFile;
hres = pShellLink->QueryInterface(IID_IPersistFile, (LPVOID*)&pPersistFile);
hres = pPersistFile->Load(TEXT(shortcut), STGM_READ);
// 获取快捷方式目标路径
char szPath[MAX_PATH];
hres = pShellLink->GetPath(szPath, MAX_PATH, NULL, 0);
// 输出路径
std::cout << szPath << std::endl;
// 释放资源
pPersistFile->Release();
pShellLink->Release();
CoUninitialize();
return 0;
}
```
需要注意的是,需要在代码中添加以下头文件并链接以下库文件:
```c++
#include <windows.h>
#include <shlobj.h>
#pragma comment(lib, "shell32.lib")
```
相关推荐
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)